所以我有一个列表,当前调用一个函数来生成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)}
这样的东西,但它们没有用,我认为这与底层地图功能有关
任何帮助都是极好的!
通常,您只需通过道具或州(即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)}
renderRow={(event) => {this.renderList(event, user, index, inputArry, outoutArry)}}
这样做,它将允许您向renderRow发送n个参数