如何根据原生的数量改变产品的价值

时间:2018-06-16 21:13:05

标签: javascript reactjs react-native

当用户选择不同的重量时,我试图让产品价格发生变化。 例如,假设用户想购买芒果,默认我显示芒果价格/公斤,现在如果用户将重量从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框架作为整体。我真的不确定要从什么开始。如果有人能给出一些非常有帮助的指针。谢谢

1 个答案:

答案 0 :(得分:0)

我会基本上按照以下步骤解决这个问题:

  1. render()方法中,您基本上可以设置自己的变量来向用户显示动态价格。例如,const displayPrice = !this.state.selected ? this.props.item.price : getPriceWithUnit(this.state.selected, this.props.item.price)。在这里,我检查了是否已选择单元(假设默认值为null)。如果没有,那么我使用默认项目价格。如果用户选择了保存的单位,则使用下面函数生成的值:

  2. 设置一个函数getPriceWithUnit(unit, price),它基本上将原始价格转换为新的显示价格,具体取决于单位,其中单位是您通过选定的州参考所需的任何单位。

  3. 不要使用在组件中显示项目价格的项目价格,而是使用displayPrice这个新变量<Text>{displayPrice}</Text>

  4. 然后,每当用户更改所选单元的值时,它将触发状态更新。这将导致组件重新渲染,更新此变量。