reactjs - 使用 React useState hook 设置多个状态值
问题描述
我想用 React useState 钩子设置多个状态值,这样我就可以用 useEffect 钩子分别更新它们。我有以下代码:
import React, { useState } from "react";
const initialValues = {
phone: "",
email: ""
};
const App = () => {
const [order, setOrder] = useState("");
const [paid, setPaid] = useState(false);
const [submitting, setSubmitting] = useState(false);
const [loading, setLoading] = useState(false);
const [data, setData] = useState(initialValues);
return (
<div className="App">
</div>
);
};
export default App;
但是当我使用 React DevTools 检查应用程序时,我看到我的钩子有多个“状态”值,而不是“订单”、“支付”、“提交”等。
这是我的代码框的链接。
我的错误在哪里?如何设置多个状态值以便稍后单独更新它们?
解决方案
您可以使用useState
钩子创建一个状态,然后像这样将每个值放在那里。
import React, { useState } from "react";
const initialValues = {
phone: "",
email: ""
};
const App = () => {
const [state, setState] = useState({
order:'',
paid: false,
submitting: false,
loading: false,
data: initialValues
});
// example of setting this kind of state
const sampleChanger = () => {
setState({...state, paid: true, order: 'sample'});
}
// etc...
推荐阅读
- sparql - 通过 SPARQL 中的链接对象获取对象的子对象
- javascript - React hooks 在数量 prop 的基础上克隆一个组件
- javascript - 我可以通过 devtool 连接到 websocket 吗?
- javascript - 在输入 javascript 中的 6 个字符后自动放置空格和模式
- python - Python:如何记录所有类方法调用
- multithreading - 文件编写器多线程
- opengl - 对不同组件使用不同数据类型的纹理
- database - 从 TDengine 数据库迁移数据存储
- joomla - 如何修复“调用未定义函数 iconv”joomla 错误
- javascript - 使用 Laravel Inertia 分页在 MUI 数据表中进行服务器端分页