Javascript 使用钩子时,React上下文更新状态不反映在嵌套函数中
我在最初渲染react组件时显示了两个按钮。如果我点击主按钮。相关的onClick函数将发送一个事件来更新reducer状态,然后执行嵌套函数,再次打印状态 我面临的问题是更新后的状态没有反映在 嵌套函数。你能告诉我我错过了什么吗Javascript 使用钩子时,React上下文更新状态不反映在嵌套函数中,javascript,reactjs,react-hooks,Javascript,Reactjs,React Hooks,我在最初渲染react组件时显示了两个按钮。如果我点击主按钮。相关的onClick函数将发送一个事件来更新reducer状态,然后执行嵌套函数,再次打印状态 我面临的问题是更新后的状态没有反映在 嵌套函数。你能告诉我我错过了什么吗 import React,{useffect,useContext}来自“React”; 从“./Main/Main”导入{MainContext}; //主要 函数FirstTab(){ ////访问上下文 const{mainState,mainDispatch}
import React,{useffect,useContext}来自“React”;
从“./Main/Main”导入{MainContext};
//主要
函数FirstTab(){
////访问上下文
const{mainState,mainDispatch}=useContext(MainContext);
常量filterState=mainState.filter;
log(“AppMainState->SalesTab:”,filterState);
const updateFilterContext=(数据)=>{
日志(“内部过滤器更新:”,数据);
mainDispatch({type:“UPDATE_FILTER”,数据:data});
};
//党卫军
常量PrimaryClick2=(过滤器状态)=>{
console.log(“主单击2”);
log(“AppMainState->PrimaryClick2:”,filterState);
};
常量PrimaryClick1=(过滤器状态)=>{
console.log(“主单击1”);
log(“AppMainState->PrimaryClick1:”,filterState);
主单击2(过滤器状态);
};
常量PrimaryClick=(过滤器状态)=>{
console.log(“主单击”);
log(“AppMainState->PrimaryClick:”,filterState);
updateFilterContext({selectedValue:“NEWVALUE”});
主单击1(过滤器状态);
};
useffect(()=>{
console.log(“步骤1:生成第一个选项卡”);
},[mainState.filter.applyFilter]);
返回(
主要的,重要的
次要的
);
}
导出默认的第一个选项卡;
我猜mainDispatch
是异步的
您可以通过以下方式检查更改:
useEffect(() => {
console.log('mainState changed')
console.log(mainState.filter)
}, [mainState])
我猜
mainDispatch
是异步的
您可以通过以下方式检查更改:
useEffect(() => {
console.log('mainState changed')
console.log(mainState.filter)
}, [mainState])
谢谢你的回复。我已经在useffect Hook中添加了主状态。更新状态值未进入嵌套函数。感谢您的响应。我已经在useffect Hook中添加了主状态。更新状态值未进入嵌套函数。