反应原生只渲染部分

时间:2015-04-23 06:22:55

标签: ios react-native

我有一个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>
        );
    }
});

1 个答案:

答案 0 :(得分:1)

回答我自己的问题, 问题是一个糟糕的组件WillReceiveProps触发了它不应该的东西。