React Native MobX FlatList extraData

时间:2017-09-11 05:19:12

标签: reactjs react-native mobx mobx-react react-native-flatlist

当我的可观察变量发生变化时,我无法让我的行重新渲染。我可以看到控制台日志触发,我的manageCart功能确实有效。唯一的问题是行不会更新。我已经尝试将flatlist上的extraData设置为extraData = {this.props.mainStore.productDataSource.slice()}或不设置。 slice()但它仍然无济于事。

manageCart(id, type) {
    let tempOne = this.props.mainStore.productDataSource.slice();
    tempOne.map((b, i) => {
        if (b.product_id === id) {
            b.qty = b.qty + 1;
        }
    });
    this.props.mainStore.productDataSource = tempOne;
}

    _renderRow = ({ item }) => {
        return (
            <ProductRow
                item={item}
                orientation={this.props.uiStore.orientation}
                manageCart={this.manageCart}
            />
        )
    }

render() {
    console.log(this.props.mainStore.productDataSource.slice())
    return (
        <View style={styles.container}>
            <StatusBarGray />
            <FixedHeader {...this.props} headerUp={this.state.headerUp} />
            <FlatList
                onScroll={this.handleScroll.bind(this)}
                scrollEventThrottle={1}
                keyExtractor={(_, i) => i}
                ListHeaderComponent={this._renderHeader}
                data={this.props.mainStore.productDataSource.slice()}
                renderItem={this._renderRow}
            />
        </View>
    );
}

0 个答案:

没有答案