javascript - React.js : Access Overall App State from a Standalone Component

标签 javascript reactjs

我有一个不属于任何其他组件的组件。当用户点击链接时,页面会跳转到该页面,这是使用react-router实现的。

<Link to={`/weather-stations/${this.props.active_device}`} >view detail
</Link>

而且我找不到将应用程序的状态传递给该组件的方法,例如:<ComponentName data={ this.state }/>我想知道在 React 中执行此操作的推荐方法是什么?谢谢。

最佳答案

“官方”(即 Facebook 使用的)方法是通过 Flux 架构,如下所述:https://facebook.github.io/flux/docs/overview.html

本质上,这涉及创建“Stores”来保存数据,然后由 React 组件访问和显示这些数据。在您的示例中,您可以创建一个 WeatherStationDataStore,以 active_device ID 为键 - 该链接另一端的组件可以从 URL 中获取 ID 并调度一个调用 WeatherStationDataStore.get(id) 的“Action” - 如果需要任何服务器交互来获取数据,则可以通过存储进行抽象。

Flux 的标准“待办事项列表”示例可以在这里找到:https://facebook.github.io/flux/docs/todo-list.html并且是对这些概念的很好的介绍。

关于javascript - React.js : Access Overall App State from a Standalone Component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34345733/

相关文章:

javascript - 如何将 onChange 传递给无状态组件

javascript - 调用分页渲染组件

javascript - webpack 中的 url-loader 配置正在从 React JS 项目中的不同路径加载图像

javascript - 从正则表达式的字面表示法中删除反斜杠

javascript - 在保留时区的 Javascript 中更改日期字符串

javascript - Sequelize 删除查询运行,但不解决 Promise

javascript - Ajax语法: Uncaught SyntaxError: Unexpected identifier

javascript - JQuery ':contains' 将其转换为 Javascript

neo4j - 将 Neo4j 与 React JS 结合使用

javascript - 动态加载 threejs 到 create react app