我不明白在我想做的事情(例如在渲染之前)的情况下需要使用 useEffect 。例如,在下面的代码中,我想用信息填充数据,例如通过从 API 接收。现在来看以下代码的区别:
const Product_List = (props) => {
const [data, setData] = useState();
getData((response)=> setData(response));
return(
<FlatList
data={data}
/>
)
}
Run Code Online (Sandbox Code Playgroud)
使用以下代码:
const Product_List = (props) => {
const [data, setData] = useState();
useEffect(() => {
getData((response)=> setData(response));
}, []);
return(
<FlatList
data={data}
/>
)
}
Run Code Online (Sandbox Code Playgroud)
换句话说,这段代码的不同之处在于:
class Product_List extends Component{
constructor(props) {
this.state = {
data: []
}
getData((response)=> this.setState({data: response}));
}
render(){
return(
<FlatList
data={data}
/>
)
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下代码:
class Product_List extends Component{
constructor(props) …Run Code Online (Sandbox Code Playgroud)