【发布时间】:2019-08-20 09:47:20
【问题描述】:
我正在做一个带有 react-native 的电子商务应用程序。在产品屏幕上,我使用 FlatList 显示存储在 MobX 可观察数组中的所有产品,当您点击产品时,我将该产品(对象)作为参数传递给 react-navigation 的导航到另一个屏幕(ProductDetails),在那里人们可以添加/减少数量,最后可以将该项目添加到购物车。但是,在 ProductsDetails 屏幕中,数量不是反应性的。
商店中的数量确实得到了更新,当我返回并再次进入 ProductDetails 屏幕时,我看到了这一点。
我尝试查看不同的文章,但找不到真正适合我的东西。任何帮助将不胜感激。
//in Products List page
onPress = (item) => { // onPress of a FlatList item
this.props.navigation.navigate('ProductDetails', {
product: item
})
}
//in ProductDetails screen
export default class ProductDetails extends Component {
product = this.props.navigation.getParam('product')
addQty = () => {
this.product.qty = this.product.qty + 1;
}
... (other code)
}
【问题讨论】:
-
嗨@hong develop,我试过了,但没有成功。没有必要将“项目”作为对象传递,我改变了这一点。数量确实会在商店中更新,但不是响应式的。
-
嗨@Gaurav,感谢您的贡献,我理解您的意思,但我想要的是每次调用 addQty 时重新渲染“ProductsDetails”屏幕。
this.navigation.push('WhateverScreen')在调用屏幕本身时渲染屏幕。反正我也试过了,但还是不行。 -
嗨@Israt,感谢您的回答。不过,这对我来说似乎是一种解决方法,mobX 不能通过 react-navigation 跟踪 observables 吗?
标签: react-native mobx react-native-navigation