0

我的情况是我要设置许多变量 - 但是,它们的值取决于另一个变量。所以这就是我的意思

var {
      columns,
      rows,
      tableColumnExtensions,
      sorting,
      editingRowIds,
      addedRows,
      rowChanges,
      currentPage,
      deletingRows,
      pageSize,
      pageSizes,
      columnOrder,
    } = this.props.apiurlsTable

    if (this.props.tableType==="dependencies") {
      var {
        columns,
        rows,
        tableColumnExtensions,
        sorting,
        editingRowIds,
        addedRows,
        rowChanges,
        currentPage,
        deletingRows,
        pageSize,
        pageSizes,
        columnOrder,
      } = this.props.dependenciesTable
    }

我使用稍后声明的变量,因此始终在条件内声明它们是不好的,因为它们对函数的剩余范围不可见。上面的代码确实有效,但给出了“变量已定义,不重新声明”警告。我喜欢使用 Object destructuring 语法,并且不希望将每个变量分开到自己的行(如 columns = this.props.dependenciesTable.column) 我想知道是否有一种方法可以在 JavaScript 中有条件地设置变量?

还是有其他可行的方法...

4

1 回答 1

1

做这个:

var objectToDestructureFrom =
    this.props.tableType === "dependencies" ? this.props.dependenciesTable : this.props.apiurlsTable;

var {
    columns,
    rows,
    tableColumnExtensions,
    sorting,
    editingRowIds,
    addedRows,
    rowChanges,
    currentPage,
    deletingRows,
    pageSize,
    pageSizes,
    columnOrder,
} = objectToDestructureFrom
于 2018-07-31T19:35:05.317 回答