当用户选择不同的重量时,我试图让产品价格发生变化。 例如,假设用户想购买芒果,默认我显示芒果价格/公斤,现在如果用户将重量从1公斤改为500克,那么价值应该会改变。
我在展示产品和下拉选项以显示可用的重量。但不确定如何根据权重更改价格的价值。
这是我的代码,用于显示产品列表和重量选项
PS:这是一个产品详情屏幕,我想让更改发生
Productlisting.js
=ISODD(SUMPRODUCT(1/COUNTIF($B1:$B$9,$B1:$B$9)))
Productcard.js
render() {
return (
<View style={styles.productListingContainer}>
<ListView
enableEmptySections={ true }
dataSource={ this.state.dataSource }
renderRow={ this._renderRow } />
</View>
)
}
//Rander products
_renderRow =(rowData)=> {
return (
<ProductThumb { ...rowData } onPress={() => this._pressProduct(rowData.id) } />
)
};
作为一个初学者来反应原生和javascript框架作为整体。我真的不确定要从什么开始。如果有人能给出一些非常有帮助的指针。谢谢
答案 0 :(得分:0)
我会基本上按照以下步骤解决这个问题:
在render()
方法中,您基本上可以设置自己的变量来向用户显示动态价格。例如,const displayPrice = !this.state.selected ? this.props.item.price : getPriceWithUnit(this.state.selected, this.props.item.price)
。在这里,我检查了是否已选择单元(假设默认值为null)。如果没有,那么我使用默认项目价格。如果用户选择了保存的单位,则使用下面函数生成的值:
设置一个函数getPriceWithUnit(unit, price)
,它基本上将原始价格转换为新的显示价格,具体取决于单位,其中单位是您通过选定的州参考所需的任何单位。
不要使用在组件中显示项目价格的项目价格,而是使用displayPrice
这个新变量<Text>{displayPrice}</Text>
。
然后,每当用户更改所选单元的值时,它将触发状态更新。这将导致组件重新渲染,更新此变量。