【发布时间】:2019-12-09 19:41:04
【问题描述】:
我想知道最好的方法是在Functional Component 中为state 定义多个key/value 对。
在课堂上我会像State一样初始化
this.state = {
first: 'foo',
second: 'bar'
};
更新State我打电话
this.setState({
first: 'foobar'
second: 'barfoo'
});
现在使用React Hooks,我像这样初始化State。
const [first setfirst] = useState('foo');
const [second, setSecond] = useState('bar');
更新State我打电话
setFirst = 'foobar';
setSecond = 'barfoo';
但是,恕我直言,这并不理想。每次我想向State object 添加一个新的key/value 对时,我都必须重写const [x, setX] = useState(...);。样板。我还必须始终牢记x 的“setter”名称,即setX。如果State object 增长,那将变得一团糟。
如果我能简单地打电话就更好了
setState(first: 'foobar', second: 'barfoo');
但我不确定如何正确初始化State object/最好的方法是什么。
【问题讨论】:
-
您找到了最好的方法吗?我想避免在使用 setState 时重新渲染多个子组件
-
@UMR 使用接受的答案。
-
但你忘了接受答案...我使用 React.memo 和 useReducer @Stophface 的组合
-
@UMR 有一个接受的答案,有七个赞成票……来自 Monika Mangal 的那个。 Alireza HI 提供的答案也有效……仔细观察。我觉得你想达到的和我想做的不一样。
标签: javascript reactjs