javascript - 函数仅在 React Native 中运行两次后才返回参数

标签 javascript reactjs react-native

我正在寻找实现这个可拖动列表,一切正常,但我的控制台日志在第一次尝试时没有显示任何内容,仅在第二次运行该函数时有效,我需要 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/

相关文章:

reactjs - 在 react 中使用标记

css - 如何在 React Native 中对齐同一 Flex 行上的 Textinput 输入? (动态地)

javascript - 为什么response.data未定义?

javascript - 在 React 中渲染普通的 JavaScript

android - IOS转Android时React-Native Element类型无效

javascript - 如何在 PHP 中使用 $_POST 获取选择元素值

javascript - 在 HTML 页面上将 URL 解析为可读的 json 格式?

javascript - 使用 Jquery 过滤器检查重复的列数据

javascript - 如何正确捕获 axios get 请求中的错误?

javascript - React 不在客户端代码中插入跨度?