【发布时间】:2021-07-06 14:07:24
【问题描述】:
过去,我是这样编写 reactjs 代码的:
class App extends Component {
state = { var1:null, var2:null, var3:null };
myfunction1 = async () => {
...
this.setState({ var1:10, var2:20, var3:30 }, this.myfunction2);
}
myfunction2 = async () => {
...
};
render() {
console.log("render");
return (
<div className="App">
{ this.state.var1 }
{ this.state.var2 }
{ this.state.var3 }
</div>
);
}
现在,我正在这样工作:
const App = () => {
const [var1, setVar1] = useState(null);
const [var2, setVar2] = useState(null);
const [var3, setVar3] = useState(null);
async function init() {
setVar1(10);
setVar2(20);
setVar3(30);
function2();
}
useEffect(() => { init(); }, []);
async function function2() {
}
console.log("render");
return (
<div className="App">
{ var1 }
{ var2 }
{ var3 }
</div>
);
这是我在第二种方式中遇到的问题:
-
有没有办法让 setVar1、setVar2 和 setVar3 在同一个调用中?问题是页面将被刷新 3 次。在第一次刷新时,var1 将等于 10,但 var2 和 var3 将为空。这可能会导致一些问题...
-
我如何确定在设置 var1、var2 和 var3 之后会调用 function2?在第一种方法中,有一个回调函数,仅在设置状态时调用。我怎样才能在第二种方法中做同样的事情?
谢谢
【问题讨论】:
标签: reactjs react-hooks