javascript - 在状态对象中使用具有多个键/值对的 React Hooks
问题描述
我想知道最好的方法是为in a定义不止一key/value
对。state
Functional Component
在课堂上我会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';
但是,恕我直言,这并不理想。每次我const [x, setX] = useState(...);
想key/value
在State object
. 样板。我还必须始终牢记 的“setter”名称x
,即setX
. 如果增长,那将变得混乱State object
。
如果我可以简单地打电话会更好
setState(first: 'foobar', second: 'barfoo');
但我不确定如何State object
正确初始化/最好的方法是什么。
解决方案
您可以使用 useState 设置整个对象,如下所示 -
const [stateObj, setStateObj] = useState({first:'foobar', second:'barfoo'});
然后更新状态 -
setStateObj({first:'foobarnew', second:'barfoonew'})
推荐阅读
- android - 如何修复此错误?错误:找不到符号 Vholder.setData(mValues.get(position));
- filter - 没有为 scipy.signal.butter 定义名称为“b”的错误。怎么了?
- javascript - n秒后datatable.js ajax livereload
- javascript - 在 arr 中生成 4 个唯一的随机数?
- dialogflow-es - 无法创建新代理
- c# - jQuery:当我有多个具有相同名称但唯一 ID 的元素时,我可以按名称选择一个元素并读取它的 ID 吗?
- anylogic - 代理当时不能在多个流程图中。至少有两个流程图块存在冲突:
- python - 我必须通过熊猫提取与“西瓜”行相对应的.csv中的所有行
- azure - 如何从 azure 管道中的变量模板文件中迭代所有变量?
- ansible - 无法从当前目录访问 Ansible 配置文件“ansible.cfg”