关于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。我一直在尝试,但奇怪的是,没有更多关于这个问题的信息。