只反应本机渲染部分
react native render only part
我有一个提要和一个可以过滤提要的底部菜单。
当过滤器被激活时,提要从 API 重新加载数据。
然而,根总是会呈现导致菜单每次都崩溃。
我怎样才能让 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>
);
}
});
为了回答我自己的问题,
问题是一个错误的 componentWillReceiveProps 触发了它不应该触发的事情。
我有一个提要和一个可以过滤提要的底部菜单。 当过滤器被激活时,提要从 API 重新加载数据。 然而,根总是会呈现导致菜单每次都崩溃。 我怎样才能让 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>
);
}
});
为了回答我自己的问题, 问题是一个错误的 componentWillReceiveProps 触发了它不应该触发的事情。