关于React Native、Redux、ListView和Navigator

关于React Native、Redux、ListView和Navigator,listview,reactjs,react-native,redux,navigator,Listview,Reactjs,React Native,Redux,Navigator,我发现不可能显示所有代码,因为代码太多了,但我的问题是关于React Native、Redux、ListView和Navigator 我的Redux状态存储一个项目数组,在列表视图中漂亮地显示,在项目上按下按钮,将导航器推到显示项目详细信息的另一个场景。当我(从道具)触发redux操作时,即:单击(更新redux存储中的值),操作被触发,并显示在调试控制台上,但屏幕上的元素未更新,如果我返回ListView,它将显示为已更新 我尝试了各种富有想象力的代码作为navigator。在调度redux操

我发现不可能显示所有代码,因为代码太多了,但我的问题是关于
React Native
Redux
ListView
Navigator

我的Redux状态存储一个项目数组,在
列表视图
中漂亮地显示,在项目上按下
按钮
,将
导航器
推到显示项目详细信息的另一个场景。当我(从道具)触发redux操作时,即:
单击
(更新redux存储中的值),操作被触发,并显示在调试控制台上,但屏幕上的元素未更新,如果我返回ListView,它将显示为已更新

我尝试了各种富有想象力的代码作为
navigator。在调度redux操作后,将
替换到同一路线,但不起作用

我忘记做什么了


我写了一个小代码来更好地解释我对刷新屏幕不了解的地方

代码在这个问题中

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

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

如果您阅读以下内容:

通知React数据更改的常用方法是调用 设置状态(数据,回调)。此方法将数据合并到此.state和 重新渲染组件。当组件完成重新渲染时, 调用可选的回调函数。大多数时候,你永远不需要这样做 提供回调,因为React将负责保留您的UI 为您提供最新信息

接下来,我建议无论道具的哪个属性发生变化,都可以将其设置为状态。然后,您可以在
render
方法中基于
state
编写条件

比如:

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>
      );
  } 
});
var Component=React.createClass({
getInitialState(){
返回{someprop:this.props.someprop};
},
组件将接收道具:函数(下一步){
this.setState({someprop:nextProps.someprop});
},
render(){
返回(
{this.state.someprop==“某物”?:
);
} 
});

谢谢,您完全理解我的问题,并且您的回答方式从未尝试过。我正在尝试制作一个应用程序来显示问题。在您的回答中,您已引导我使用函数
shouldComponentUpdate(nextrops,nextstate)
,但是除了我原来的道具之外,不要再获取任何东西,尽管状态已更新为redux。我一直在尝试,但奇怪的是,没有更多关于这个问题的信息。