我有一个Feed和一个可以过滤Feed的底部菜单。 过滤器激活后,Feed会从API重新加载数据。 但是,root将始终呈现,导致菜单每次都崩溃。 如何才能使Feed仅重新加载?
var Main = React.createClass({
getInitialState: function() {
return {
reloadFeedData: false,
};
},
reloadFeedData: function(){
console.log('setting root state')
this.setState({reloadFeedData:true});
},
renderScene: function(route, nav) {
var reload = this.state.reloadFeedData
switch (route.name) {
case 'Feed':
return (
<Feed navigator={nav} reloadFeedData={reload} />
);
default:
return (
<Feed navigator={nav} reloadFeedData={reload} />
);
}
},
render: function() {
console.log('root render');
return (
<View style={styles.container}>
<Navigator
style={styles.navigator}
renderScene={this.renderScene}
initialRoute={{
component: Feed,
}}
/>
<BottomMenu reloadFeedData={this.reloadFeedData} />
</View>
);
}
});
答案 0 :(得分:1)
回答我自己的问题, 问题是一个糟糕的组件WillReceiveProps触发了它不应该的东西。