React Native - обновление и удаление по идентификатору - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь Обновить и Удалить некоторые элементы по ID после нажатия / нажатия кнопок Обновить и Удалить. Но мои проблемы в том, что я не уверен, каков правильный подход к выполнению «выборки с состоянием (или чем-либо другим) для идентификаторов».

  • При таком подходе у меня возникают ошибки. (Пример: undefined не является объектом ...)
  • Без них у меня ничего нет. Я хорошо это знаю, потому что я ни о чем не говорю. Поэтому я должен использовать ID . Но я не знаю подход.

Пожалуйста, помогите, все будет оценено. :)

Вот мой код

Settlement.js

export default class Settlement extends Component {
    constructor(props){
    super(props)
        this.state = {
            ...
            deleteOrder: '',
            numOrder: '',
        };
    }

    submit = () => {
        this.state.numOrder = item.order_id;     // here's my fetch with state
        fetch('http://192.168.254.***:****/SendOrder/update' + this.state.numOrder, {
            method: 'PUT',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                spcl_req: this.state.SplOrder,
                order_quantity: this.state.count,
                order_type: this.state.DineIn,
            })
        }).then(res => res.json())
            .then((responseJson) => {
                Alert.alert(JSON.stringify(responseJson))
                console.log(responseJson);
            })
        .catch(error => console.error('Error:', error))
    }
    delete = () => {
        this.state.deleteOrder = item.order_id;     // here's my fetch with state
        fetch('http://192.168.254.***:****/SendOrder/delete_order/' + this.state.deleteOrder, {
            method: 'DELETE',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                order_id: this.state.deleteOrder
            })
        }).then((responseData) => {
            Alert.alert(JSON.stringify(responseData))
            console.log(responseData.rows)
        }).done();
    }

    render() {
        const { params } = this.props.navigation.state;
        return (
            <View>
                <FlatList
                ...
                renderItem = {({ item }) =>
                    <View>
                        ....
                        <View>
                            <TouchableOpacity
                                onPress = { () => this.submit() }>
                                <Text>UPDATE</Text>
                            </TouchableOpacity>
                            <TouchableOpacity
                                onPress = { () => this.delete() }>
                                <Text>REMOVE</Text>
                            </TouchableOpacity>
                        </View>
                    </View>
                }/>
            </View>
        )
    }
}[![enter image description here][1]][1]

1 Ответ

0 голосов
/ 01 сентября 2018

Вы нарушили пару понятий в React.

this.state.numOrder = item.order_id; Эта строка не будет обновлять ваше состояние

Что находится в позиции в этой строке? renderItem = {({item}) =>

Возможно, в этом объекте есть идентификатор, который должен быть передан в качестве аргумента вашим функциям

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...