📅  最后修改于: 2023-12-03 15:05:47.051000             🧑  作者: Mango
在React中,useState是一种用于管理组件状态的挂钩。它使得在函数式组件中使用状态变得非常容易。除了存储变量外,useState还允许我们在状态更改时执行回调函数。在本文中,我们将了解如何使用useState挂钩回调。
import React, { useState } from 'react';
function App() {
const [counter, setCounter] = useState(0);
const handleCounterChange = () => {
setCounter(counter + 1, () => {
console.log('Counter has been updated!');
});
};
return (
<div>
<p>Counter: {counter}</p>
<button onClick={handleCounterChange}>Increment Counter</button>
</div>
);
}
export default App;
上述代码中,我们声明了一个名为counter的状态变量和一个名为setCounter的函数。setCounter函数用于更改counter变量的值并且接收一个回调函数作为第二个参数。回调函数在状态更新后立即执行。
有关使用useState的其他方法,请参阅 React官方文档。
我们来看一个更实际的用例,当我们点击一个按钮时,我们将发出网络请求,如下所示:
import React, { useState } from 'react';
function App() {
const [data, setData] = useState(null);
const fetchData = async () => {
const response = await fetch('https://jsonplaceholder.typicode.com/todos/1');
const json = await response.json();
setData(json);
};
const handleButtonClick = () => {
fetchData(() => {
console.log('Data has been fetched!');
});
};
return (
<div>
<button onClick={handleButtonClick}>Fetch Data</button>
<pre>{JSON.stringify(data, null, 2)}</pre>
</div>
);
}
export default App;
在上面的代码中,当单击“Fetch Data”按钮时,我们将会触发fetchData函数来获取数据,并在状态更新后执行回调函数。
使用useState挂钩回调是React应用程序中一个非常有用的功能。它允许我们在状态更改后执行任何函数,这样我们就可以在状态变化时执行一些额外的操作。