reactjs - 如何从 React Native 中的子组件更新父组件中的状态?
问题描述
当前代码
父.js
export default class Parent extends Component {
constructor(props) {
super(props);
this.state = {
nickname: 'parent'
};
}
}
Child.js
export default class Child extends React.Component {
constructor(props) {
super(props);
this.state = {
nickname: props.navigation.state.params.nickname
};
}
onPressUpdate() {
const { nickname } = 'Child';
this.props.navigation.navigate('Parent', { nickname: nickname });
}
}
我想做的事
Parent.js 显示昵称,并在 Child.js 中进行编辑。完成昵称编辑后,导航返回 Parent.js。然后我想在上面的代码中显示一个新的昵称“孩子”。如果您能给我任何建议,我将不胜感激:)
解决方案
您可以在父代码中使用componentDidUpdate 。
像这样的东西:
componentDidUpdate(prevProps) {
// Typical usage (don't forget to compare props):
if (this.props.nickname !== prevProps.nickname ) {
this.seteState({nickname:this.props.nickname});
}
}
当您从孩子导航到父母时,将昵称传递给更新,它将起作用并将 setState 设置为新的。
推荐阅读
- html - When using custom scrollbar style on Chrome, a white square appears on lower corner. How to eliminate this?
- nearprotocol - Near Protocol: Error during Context.predecessor in view
- postgresql - Return rows which have the same values in two columns, but different values in another
- mysql - AWS RDS MySQL FullText Index with 2 Character Words
- python - numpy ndarray上的Python元素条件
- c++ - 在 opencv dnn 中加载 onnx 模型
- wget - 检索通过 wget 下载的文件路径
- reactjs - React 正确接收道具但变得未定义
- kubernetes - Digitalocean 上任何节点的初始角色主机如何
- oracle - Oracle 全文搜索。在 CATSEARCH 中使用参数