使用RenderRow(Onsen-UI)向函数添加更多参数

问题描述 投票:0回答:2

所以我有一个列表,当前调用一个函数来生成ListItems,但我想传递更多的信息。

<List
  dataSource={this.state.addedArry}
  renderRow={this.renderList}
/>

呼叫

  renderList = (user, index) => {
    return (
      <ListItem key={user.key}>
        <div className='left'>
          <img src={`https://robohash.org/${user.key}`} alt={""} className='list-item__thumbnail' />
        </div>
        <div className='center'>
          {user.name}
        </div>
        <div className='right'>
          <Button onClick={() => this.clickedRemoveEventHandler(user, index, this.state.userArry, this.state.addedArry)}>Remove</Button>
        </div>
      </ListItem>
    );
  }

我希望有一种方法可以传递不同的数据,如this.state.userArry或其他东西。

所以最终的调用看起来像:

renderList = (user, index, inputArry, outoutArry) => { ... }

我尝试过像renderRow={this.renderList(var1, var2)}这样的东西,但它们没有用,我认为这与底层地图功能有关

任何帮助都是极好的!

javascript reactjs onsen-ui
2个回答
0
投票

通常,您只需通过道具或州(即this.props.inputArray)访问额外信息。但是,如果您确实想传递更多参数,有以下几种方法:

  • 预先绑定函数以提供默认参数:renderList = renderList.bind(this, inputArray, outputArray);。然后,renderList将获得4个参数:renderList(inputArray, outputArray, data, index) { ... }
  • 将功能绑定到“就地”:renderRow={renderList.bind(this, inputArray, outputArray)}。与之前的情况相同的论点。
  • 使用匿名函数重定向参数:renderRow={(data, index) => renderList(data, index, inputArray, outputArray)}

0
投票
renderRow={(event) => {this.renderList(event, user, index, inputArry, outoutArry)}}

这样做,它将允许您向renderRow发送n个参数

© www.soinside.com 2019 - 2024. All rights reserved.