javascript - react组件通信
迷茫
迷茫 2017-04-11 09:07:29
[JavaScript讨论组]

两个同级的组件之间怎么通信,实现组件A状态改变,B跟着刷新。现在功能就是点击表头对后台数据数组进行排序,然后刷新给页面的数据列表。现在能看到后台数据已经排序完成,但是数据列表组件并没有随着更新UI。这个功能应该怎么实现,用的Redux。

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(3)
伊谢尔伦

问题中的同级别组件, 我理解为是在同一个container下的两个component, 首先要在container中调用connect()方法, 将state作为props传递下去, 代码如下:

function mapStateToProps(state) {
  const props = {
    todos: selectTodos(state.todos, state.visibilityFilter),
    filter: state.visibilityFilter
  };
  return props;
}
export default connect(mapStateToProps)(App);

这相当于订阅了state的更改事件, state如果发现改变会调用mapStateToProps, 并将最新的state传递下去, 同时有更改的component会重新渲染.

怪我咯

当你发现这样的需求的时候 说明应该有一个父组件包含a和b,即

  • top

    • a

    • b

数据应该在top中存储,并向子组件传递~

巴扎黑

这个不难啊,虽然react是单向数据流,但是可以通过linkState()来传递数据,具体看官方文档有demo

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号