javascript - 将状态中的参数从子级传递给父级
问题描述
我一直在思考这个问题,我确信这很简单,但我不能完全点击它。学习反应我试图将状态作为参数从孩子传递给父母
孩子:
handleSubmit() {
this.setState({finalValue: this.state.inputValue})
this.props.changeFont(this.state.finalValue)
}
家长:
<Fonts
changeFont={()=> this.setState({fontState: this.state.finalValue})}
/>
显然,这段代码目前不起作用,但这本质上就是我想要做的;将this.state.finalValue
值作为要在父组件中使用的参数传递,以便我可以在父组件中将其用作值。
解决方案
setState
是异步的并且不会立即改变this.state
,所以如果你想在设置状态变量的状态后立即执行一个动作,你应该使用 setState 回调。
setState(更新程序,[回调])
孩子:
handleSubmit() {
this.setState({finalValue: this.state.inputValue},
()=>this.props.changeFont(this.state.finalValue)) //callback
}
父级:从子组件向函数传递参数
<Fonts
changeFont={(finalValue)=> this.setState({fontState: finalValue})}
/>
推荐阅读
- reactjs - 如何在 React js 中映射嵌套评论?
- node.js - 使用 graphql 和简单的 express nodejs 设置导致错误和错误
- javascript - 如果没有子列表,如何扩展列表?
- javascript - Javascript 不会影响我的烧瓶引导网站中的导航栏
- python - 有条件地增加熊猫
- docker - DockerCompose 构建一个镜像并运行多个容器
- python - 强制 ipython 以科学计数法输出
- azure - Power Bi URL 过滤器始终显示所有
- svgo - svg-sprite-loader outputPath 中断 svgo
- google-cloud-firestore - Firestore 问题 Saveall 方法