我正在尝试使用组件接收的道具使用 React 钩子 setState() 设置状态。我试过使用下面的代码:
import React,{useState , useEffect} from 'react';
const Persons = (props) => {
// console.log(props.name);
const [nameState , setNameState] = useState(props)
console.log(nameState.name);
console.log(props.name);
return (
<div>
<p>My name is {props.name} and my age is {props.age}</p>
<p>My profession is {props.profession}</p>
</div>
)
}
export default Persons;
问题是在加载组件时设置状态。但是当它收到新的道具时,状态并没有得到更新。在这种情况下如何更新状态?提前致谢。
原文由 METALHEAD 发布,翻译遵循 CC BY-SA 4.0 许可协议
useState
hooks 函数参数仅使用一次,而不是每次道具更改时使用。您必须使用useEffect
挂钩来实现您所说的componentWillReceiveProps/getDerivedStateFromProps
功能