请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

当有多个state的时候的解决方法 用useReducer

const initialState = {
foo: ‘bar’,
bar: ‘baz’,
};

const RESET = ‘RESET’;

const assignReducer = (state, payload) => {
if (payload === RESET) {
return initialState;
}

return Object.assign({}, state, payload);
};

const MyComponent = () => {
const [state, setState] = useReducer(assignReducer, initialState);

// update single key
setState({ foo: ‘foo’ });

// partial update
setState({ foo: ‘foo’, bar: ‘bar’ });

// reset
setState(RESET);
}

如果仅仅是一个大对象 放在useState 有时候会出现不及时更新的问题 这个方法比较可靠。

正在回答 回答被采纳积分+3

1回答

Jokcy 2019-08-07 21:31:22

你指的不及时更新是啥意思?你是不是改了对象的属性,但是没有调用setState更新整个对象。

0 回复 有任何疑惑可以回复我~
  • 提问者 MaoGirlsQueen #1
    就是我把更新的对象  没放入 setState里之前我打印了  是最新的对象  放入以后就是没有改变的那个对象的值  咋整都没有
    回复 有任何疑惑可以回复我~ 2019-08-07 23:38:13
  • Jokcy 回复 提问者 MaoGirlsQueen #2
    给个代码实例
    回复 有任何疑惑可以回复我~ 2019-08-09 20:08:34
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号