【发布时间】:2020-09-02 12:04:57
【问题描述】:
也许我遗漏了什么,但我找不到解决方案。
我有一个 React 组件并想运行一些周期性的后台作业 (setInterval) 这项工作使用了组件状态的一些信息,并且应该能够改变它。
我的组件:
export default function Form() {
const [state, setState] = useState<IState>(initialState);
useEffect(() => {
//init component and other stuff
// trigger background Task
setInterval(backgroundJob, 10000);
}, []);
function backgroundJob(){
state.xxx
}
function handleButtonClick(){
state.xxx = state.xxx + 1;
setState({
...state,
});
}
}
主要问题是,backgroundJob 函数能够访问状态,但它只有initalState。如果state 被更新,(例如,通过handleButtonClick() 函数单击按钮),下一个间隔刻度在state 中仍然具有旧值
我在这里误解了一些基本概念吗?
【问题讨论】:
-
你能添加这个沙箱吗?
标签: reactjs