reactjs - 我可以在 React 应用程序中使某个函数全局可用吗?
问题描述
以 prop 的形式从根组件 A 传递到子组件 B 是一种常见的做法,该函数将更改 A 的状态。像这样:
class App extends React.Component {
constructor(props) {
super(props);
this.state = {
name: 'foo'
};
this.handleNameChange = this.handleNameChange.bind(this);
}
render() {
return (<NameChanger name={this.state.name} onNameChange={this.handleNameChange} />)
}
handleNameChange: function(newName) {
this.setState({
name: newName
});
}
}
现在你可以看到NameChanger
它只下降了一层,所以那里不是一个大问题。但是,如果它已经下降了 3 甚至 4 级呢?我们不得不将它传递到组件链中,这让我很困扰。有没有办法让应用程序中的功能全局可用?
我查看了Context
(https://reactjs.org/docs/context.html),但我不确定它是否是全局可用功能的正确设计选择。或者是吗?
谢谢
解决方案
尝试使用 Redux 或 Mobx(非常容易上手)作为状态管理库来解决这个问题。
推荐阅读
- html - Laravel 重定向更改 div 类时
- google-maps - 谷歌地图地理编码标记加载
- php - 致命错误:未捕获错误:调用未定义函数 displayimage()
- python - 确定龙卷风协程的关键字
- model-view-controller - Telerik MVC Grid - 使用下拉菜单更新“不可编辑”字段
- amazon-web-services - 从 ECS 容器实例运行 docker
- php - 尽管有 at 运算符@,如何静音禁用功能的错误日志记录?
- xml - 如何将每个键的多个值写入 XML 文件?
- javascript - 我的 HTML 代码中的错误
- node.js - express-session 不能销毁会话