我有以下组件
import React, { useState } from 'react';
const Test = () => {
const [streaming, setStreaming] = useState(false);
const turnStreamingOn = () => {
setStreaming(true);
process();
}
const process = () => {
console.log('streaming:', streaming);
}
return (
<div>
<button onClick={() => {
turnStreamingOn();
}}>{streaming ? 'streaming' : 'not streaming'}</button>
</div>
)
};
export default Test;单击按钮时,我们在UI中有'streaming‘,但'process’函数中的console.log显示它是假的。我做错了什么?如何正确读取状态?
发布于 2020-09-22 16:54:54
import React, { useEffect, useState } from 'react';
const Test = () => {
const [streaming, setStreaming] = useState(false);
const turnStreamingOn = () => {
setStreaming(true);
}
useEffect(() => {
console.log('streaming: ', streaming)
}, [streaming])
return (
<div>
<button onClick={() => {
turnStreamingOn();
}}>{streaming ? 'streaming' : 'not streaming'}</button>
</div>
)
};
export default Test;为此,您应该使用useEffect。
https://stackoverflow.com/questions/64006209
复制相似问题