我想用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...
这两个是等价的吗?如果不是,哪一个是最好的,为什么?
提前谢了。我有一个状态数组,如下所示。 我需要添加一个项目到状态数组,我发现我们不需要做状态突变。如何使用PrevState设置状态。 如何调用set State以追加此状态数组。 像这样的东西?
我想知道在中为定义多个对的最佳方法是什么。 在一个类中,我会初始化
假设我有一个依赖于其他状态的状态(例如,当A改变时,我希望B改变)。 在useEffect钩子中创建一个观察a并设置B的钩子是否合适? 效果是否会层叠,当我单击按钮时,第一个效果会激发,导致b发生变化,导致第二个效果激发,然后再进行下一次渲染?这样构造代码有没有性能方面的缺点?
问题是:我试图通过单击按钮调用两个函数。这两个函数都会更新状态(我正在使用useState钩子)。第一个函数将value1正确更新为“new 1”,但在1s(setTimeout)后,第二个函数启动,它将值2更改为“new 2”,但是!它将值1设置回“1”。为什么会这样?提前谢谢!
当您通过提交表单调用API请求时,如何设置Axios响应?我想从/在POST方法中发送表单,并获得API响应,然后用API响应重定向到/result页面。我的代码在下面,它引发 警告:无法对卸载的组件执行React状态更新。 这是一个no-op,但它表示应用程序中存在内存泄漏。 若要修复,请取消useEffect清理函数中的所有订阅和异步任务。在家(在app.js:21) 完成handleSubm