react-native - 使用 react-navigation 的 navigate('routeName') 传递的参数不是响应式的
问题描述
我正在做一个带有 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)
}
解决方案
就像上面另一个说的:
this.props.navigation.navigate('ProductDetails', {product: { item } })
但是他们忘记添加参数的用法,所以要在里面使用参数ProductDetails
:
this.props.navigation.state.params.product
推荐阅读
- ios - 完成块方法与 DispatchQueue
- python - 键和列表的字典 - 如果列表中的任何值为无,则删除键
- javascript - Ant design - 如何通过拖动调整表格列宽?
- nginx - Nginx 重定向到另一个域并附加新参数
- swift - 有没有办法将多个属性标记为仅在协议中获取?
- angular - 从效果中调度多个动作:不同 rxjs 运算符之间的区别
- c++ - OpenCV CV findHomography 断言错误计数器 = > 4
- git - Git在合并后恢复提交
- java - 无法解析符号“服务”导入 com.google.api.services;
- html - 将引导列表项与卡片底部对齐