当我的可观察变量发生变化时,我无法让我的行重新渲染。我可以看到控制台日志触发,我的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>
);
}