reactjs - 用钩子重构状态
问题描述
我试图用硬编码的初始状态重构简单的代码,但我是 React Hooks 的新手。
const TimersDashboard = () => {
const [timers, timersChange] = useState(0)
React.state = {
timers: [
{
id: UUID.v4(),
activity: 'Testing activity',
description: 'Lorem ipsum kraf maga',
elapsed: '0',
runningSince: Date.now(),
},
{
id: UUID.v4(),
activity: 'Next activity',
description: 'Lorem ipsum kung fu',
elapsed: '0',
runningSince: Date.now(),
}
]
}
return (
<div className='ui three column centered grid'>
<div className='column'>
<TimersList
timers={this.state.timers}
/>
<NewTimerTool
isOpen={false}
/>
</div>
</div>
);
}
我有问题用 Hooks 重写初始状态。
解决方案
您正在使用功能组件,您只能使用 Hooks。React.state 仅适用于类组件。如果你希望你的初始 React.state 像这样初始化它
const [timers, setTimers] = useState([
{
id: UUID.v4(),
activity: "Testing activity",
description: "Lorem ipsum kraf maga",
elapsed: "0",
runningSince: Date.now(),
},
{
id: UUID.v4(),
activity: "Next activity",
description: "Lorem ipsum kung fu",
elapsed: "0",
runningSince: Date.now(),
},
]);
在 TimersList 中,只需像这样获取 useState 的值 <TimersList timers={timers}/>
。
推荐阅读
- javascript - 如何从云 Firestore 中提取非重复文档?
- c# - 解析 XML 文档中的指数值
- c# - 如何使用 xUnit 写入 Visual Studio 的测试或调试选项卡
- android - 当应用程序被杀死时,设备未收到推送通知
- python-3.x - 我尝试安装 PyQtWebEngine,总是遇到同样的问题。无法在任何地方解决问题
- delphi - Delphi中有AutoInc字段时FDMemTable会丢失FieldDefs信息
- angular - 创建一个遵循决策树的角度形式
- flutter - 如果应用程序由该链接关闭和打开,则 getInitialLink 不会捕获 Firebase 动态链接
- python - 训练神经网络时保持精度为零 - Python
- javascript - 删除动态生成的文本框