【问题标题】:how to change object state value in javascript (react-native)如何在 javascript (react-native) 中更改对象状态值
【发布时间】:2018-04-22 16:10:36
【问题描述】:

我正在使用 backendless api 创建简单的 crud 应用程序。这是我的表架构:

产品表:

  • 名称(字符串)
  • 价格(双倍)
  • 说明(文字)

我使用本地基础的输入组件从用户那里获取值。但是我的价格有问题,当我输入价格 5000 时,在数据库中输入的值不是 5000 而是 892350512,我认为这是因为 onChangeText 的值是字符串,我混淆了如何在我的状态下解析 parseInt()。

这是我的代码:

state = { data: {} }

allProduct(){
    axios.get(`${uri}/products?sortBy=created%20desc`).then(result => {
        this.setState({
            data: result.data
        })
    })
}

handleSubmit(){ 

    axios.post(`${uri}/products`, this.state.data).then(result => {
        if(result.data){
            this.allProduct,
            alert("Succes!")
        }
    })

    // alert(JSON.stringify(this.state.data))
}

这是我从用户那里获取价值的表单代码:

<Label style={styles.batasAtas}>Harga</Label>
<Item regular>
    <Input onChangeText={(price) => this.setState({data:{...this.state.data, price}})} keyboardType = 'numeric'/>
</Item>

【问题讨论】:

  • Input是什么,也可以记录setState之前的价格吗?
  • @PritishVaidya 是的,我已经提醒了。例如:我在提交价格时输入 5,值为字符串“5”
  • @masdap 我的回答能解决这个问题吗?
  • @Colin 我已经这样做了,但是没有用。
  • 已解决我使用这种方法:创建一个局部变量并保存onchangetext值,然后将其解析为Number,然后将其用于axios.post()

标签: javascript react-native axios native-base backendless


【解决方案1】:

你可以这样做:

<Input onChangeText={(price) => this.setState({data:{...this.state.data, parseInt(price)}})} keyboardType='numeric'/>

将价格更改为整数。

【讨论】:

    猜你喜欢
    • 2020-04-04
    • 2020-11-13
    • 1970-01-01
    • 2020-03-21
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多