当有多个state的时候的解决方法 用useReducer
来源:7-7 维持OAuth之前得页面访问

MaoGirlsQueen
2019-08-07
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 有时候会出现不及时更新的问题 这个方法比较可靠。
写回答
1回答
-
Jokcy
2019-08-07
你指的不及时更新是啥意思?你是不是改了对象的属性,但是没有调用setState更新整个对象。
022019-08-09
全栈进阶课程 React16.8+Next.js+Koa2一步到位开发Github
学习React/Next.js服务端渲染SSR同构设计方案,理解OAuth登录体系的实现原理
651 学习 · 311 问题
相似问题