【发布时间】:2019-06-16 21:48:20
【问题描述】:
作为个人喜好,我将 React 道具包装在命名空间中。它帮助我组织不同道具的来源。
使用useState 钩子我正在这样做。
function MyComponent() {
const [todoCount, setTodoCount] = useState(100);
const [doneCount, setDoneCount] = useState(0);
const myState = {
todoCount,
setTodoCount,
doneCount,
setDoneCount
};
return (
<>
<Text>Todo {myState.todoCount}</Text>
<Text>Done {myState.doneCount}</Text>
</>
);
}
状态设置有更简洁的语法吗?
我的失败尝试是
const myState = {
[todoCount, setTodoCount]: useState(100),
[doneCount, setDoneCount]: useState(0);
};
【问题讨论】:
-
您至少可以省略
: count和: setCount,但不确定它是否会比这更简洁 -
你可以内联第二行,例如
const myState = { count, setCount }...虽然我认为您的意思是一种在一行中同时进行的方式,自定义钩子?useNamespaceState(虽然 IMO 并没有真正在这里获得任何东西) -
@CollinD 实际上我在第一部分中已经这样做了,但在第二部分中没有。应该复制/粘贴。 ???已编辑...谢谢。
-
为什么不直接使用数组呢?或者至少可以创建自己的钩子,它将转换为对象?
-
@James 是的...我希望有一个衬里,这样我就可以启动
myState命名空间内的所有状态。将示例更新为更复杂一点以显示此详细信息。
标签: javascript reactjs