当有多个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更新整个对象。

0
2
Jokcy
回复
MaoGirlsQueen
给个代码实例
2019-08-09
共2条回复

全栈进阶课程 React16.8+Next.js+Koa2一步到位开发Github

学习React/Next.js服务端渲染SSR同构设计方案,理解OAuth登录体系的实现原理

651 学习 · 311 问题

查看课程