关于React Native,Redux,ListView和Navigator

时间:2016-02-18 13:19:15

标签: listview reactjs react-native redux navigator

我发现无法显示所有代码,因为太多,但我的问题是React NativeReduxListViewNavigator

我的Redux状态存储一个项目数组,精美地显示在项目的ListViewonPress上,将Navigator推送到另一个显示项目详细信息的场景。当我发出一个redux动作(来自道具),即:Click(更新Redux Store中的值)时,动作被触发,并出现在调试控制台上,但是屏幕上的元素没有更新,如果我返回ListView,它会显示更新。

我在调度redux操作后尝试将各种想象代码navigator.replace作为<android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="@dimen/toolbarHeight" app:collapseIcon="@drawable/collapseBackIcon" /> 到同一路径但不起作用。

我忘了做任何事情?

我写了一个小代码,以便更好地解释我对刷新屏幕的理解。

代码就是这个问题 Need help on some concepts about ReactNative and Redux and Navigator

我真的需要帮助。 提前致谢

1 个答案:

答案 0 :(得分:1)

由于你的问题缺乏代码,很难猜出你实际在做什么。但是我会继续猜测 - redux正在修改props并且您没有任何正在更新的状态集。

如果您阅读official doc

  

通知React数据更改的常用方法是调用   setState(数据,回调)。此方法将数据合并到this.state和   重新渲染组件。当组件完成重新渲染时,   调用可选的回调。大部分时间你都不需要   提供回调,因为React将负责保持您的UI   为您提供最新信息。

在此之后,我会建议道具的哪个属性正在改变,你可以将它设置为一个状态。然后,您可以在state方法中根据render撰写条件。

类似的东西:

var Component = React.createClass({
  getInitialState() {
    return { someprop: this.props.someprop };
  },
  componentWillReceiveProps : function(nextProps) {
    this.setState({someprop: nextProps.someprop});
  },
  render() {
    return (
        <div>
          { this.state.someprop == "something" ? <ChildComp1 /> : <ChildComp2 />
        </div>
      );
  } 
});