javascript - 如何在 React js 中接收更新的道具?
问题描述
你能告诉我如何在 React js 中接收更新的道具吗?我知道componentWillReceiveProps
是unsafe
并且我尝试使用getDerivedStateFromProps
但不起作用
这是我的代码 https://codesandbox.io/s/rm30zoonk4
两秒钟后,我正在更新正在传递的状态props
Expected output after two second
abcsssss
static getDerivedStateFromProps(nextProps, prevState) {
if (nextProps.src !== "") {
return { src: nextProps.src };
} else return null;
}
解决方案
您可以使用componentDidUpdate
更新发生后立即调用 componentDidUpdate()。
https://reactjs.org/docs/react-component.html#componentdidupdate
class Hello extends Component {
state = {
name: ""
}
componentDidUpdate(prevProps) {
if (this.props.src !== prevProps.src) {
this.setState({name: this.props.src + 'ssss'});
}
}
render() {
return <div>{this.state.name}</div>;
}
}
推荐阅读
- python - 为什么我在输出中得到“无”
- c - Windows 鼠标挂钩导致控制台延迟
- python - Pycharm 调试在导入时失败,但运行工作
- python - 如何在 Python 中将文本转换为数据框(应用一些规则)
- sql-server - [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]数据库中已经有一个名为 'django_content_type' 的对象
- java - 在 Java 中使用其他常量的常量
- heroku - 如何在 Heroku 上部署 Mercure Binary?
- python - 如何在 Python 中导入 2 个版本的包?
- javascript - jupyter笔记本上的mathBox
- javafx - JavaFX WebView 在 org.w3c.dom.Element 中获取/设置内部/外部 HTML;