我正在寻找实现这个可拖动列表,一切正常,但我的控制台日志在第一次尝试时没有显示任何内容,仅在第二次运行该函数时有效,我需要 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} />}
/>
这是我的函数,我知道它是异步的,但不知道该怎么办
updateList = (neworder, e) => {
console.log('updated')
console.log('order: ' + order)
console.log('neworder: ' + neworder)
}
我尝试在 onRowMoved
函数中添加 setState 和回调,就像这样,同样的问题
this.setState({ neworder: order }, this.updateList)
最佳答案
使用:
componentDidMount()
在其中调用您的函数。
或者每次触发 setState 时,重新加载请求
this.setState({ neworder: order}, () => {this.updateList() })
根据您的 Angular 色,是否有必要将 this.updateList 括在大括号中
关于javascript - 函数仅在 React Native 中运行两次后才返回参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61413589/