Функция возвращает аргумент только после двух запусков в React Native - PullRequest
0 голосов
/ 24 апреля 2020

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

<SortableListView
    removeClippedSubviews={false}
    style={{ flex: 1 }}
    data={data}
    order={order}
    onRowMoved={(e) => {
    order.splice(e.to, 0, order.splice(e.from, 1)[0])
    this.forceUpdate()
    this.updateList(order)
    }}
    renderRow={(row) => <RowComponent data={row} />}
/>

Это моя функция, я знаю, что это asyn c, но не уверен, что с этим делать

  updateList = (neworder, e) => {
    console.log('updated')
    console.log('order: ' + order)
    console.log('neworder: ' + neworder)
  }

Я пытался добавить setState и обратный вызов внутри функции onRowMoved, как итак, тот же выпуск

this.setState({ neworder: order }, this.updateList)

1 Ответ

1 голос
/ 24 апреля 2020

Используйте:

componentDidMount ()

Внутри него вызовите вашу функцию.

Или каждый раз, когда вызывается ваш setState, сделайте запрос перезагрузить

this.setState({ neworder: order}, () => {this.updateList() })

В зависимости от вашей роли, будет необходимо или не оборачивать this.updateList в фигурные скобки

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