React Native-将数据插入数据库不起作用

时间:2018-07-23 16:45:24

标签: javascript android reactjs react-native mobile

我的代码中有3种数据,首先是状态,带有“索引”的东西(对不起,我不知道该怎么称呼。),最后是我数据库中的数据。

在我的州,实际上我对州没有任何问题。我可以顺利地将那些东西放入数据库中...但是当我尝试将其他数据发送到数据库时,情况发生了变化。

在这里,我试图在数据库中发送带有“ index”的数据。我不确定是否要在正确的代码构造中执行此操作,并且在这里还出现错误,提示“找不到变量;索引”。

submit = () => {
            fetch('http://192.168.254.100:3308/SendOrder/Send', {
                method: 'POST',
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    order_quantity: this.state['count'+index],
                    special_request: this.state['SplOrder'+index],
                })
            }).then(res => res.json())
                .then((responseJson) => {
                    Alert.alert(JSON.stringify(responseJson))
                    console.log(responseJson);
                })
            .catch(error => console.error('Error:', error))
}
return(
    <View>
         <TextInput
         onChangeText = { (text) => this.setState({ ['SplOrder'+index]: text }) }
         value = { this.state['SplOrder'+index] }
         />
         <TextInput
         onChangeText={ (text) => this.setState({ ['count'+index]: text}) }
         value={ this.state['count'+index] }
         />
    </View>
)

最后,在这里我还尝试将数据库中的数据发送回数据库。我的代码中有两个URL,第一个用于显示,第二个用于选择项目。

fetchData = async () => {
    const { params } = this.props.navigation.state;
    const response = await fetch("http://192.168.***.***:3308/categories/" + params.id + params.price);
    const json = await response.json();
    this.setState({ data: json })          // Simply for display
}

submit = () => {                          // For Sending items
            fetch('http://192.168.254.100:3308/SendOrder/Send', {
                method: 'POST',
                headers: {
                    'Accept': 'application/json',
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({
                    menu_desc: this.state.id,
                    menu_price: this.state.price,
                })
            }).then(res => res.json())
                .then((responseJson) => {
                    Alert.alert(JSON.stringify(responseJson))
                    console.log(responseJson);
                })
            .catch(error => console.error('Error:', error))
}
<View>
    <Text>Name: { item.menu_desc }</Text>
    <Text>Price: ₱{ item.menu_price }</Text>
</View>

在这里,用;

menu_desc: this.state.id
menu_price: this.state.price

输出如下:

menu_desc: [],
menu_price: []

所以我认为,这里的状态不起作用,因为我的输出为空。所以我尝试了这样;

menu_desc: this.item.menu_desc,
menu_price: this.item.price

但是与此同时,我遇到了一个错误。未定义不是对象(正在评估'_this.item.menu_desc')

所以总而言之,伙计们,正确的做法是什么?因为我知道我在这里做的事毫无意义,对此我感到非常抱歉。 :(

0 个答案:

没有答案