【发布时间】:2018-01-31 18:34:38
【问题描述】:
我有一个通过映射数组来动态构建的表。数组中的每个项目都有一行。每行中的一列是select。我只希望在单击同一行的下一列中的按钮时显示该列的内容。
我的计划是为数组中的每个对象添加某种切换布尔属性,但是当我尝试在按钮的 onclick 中切换它时,我的 eslint 抱怨,因为我正在尝试修改我将参数发送到 onclick 调用的函数中。
这样做的适当方法是什么?
这是表格的代码:
<table>
<tbody>
{myArray.map(row => (
<tr key={`test-${row.name}`}>
<td>
<div className="testClass">{row.id}</div>
</td>
<td>{row.name}</td>
<td>
<Select
options={this.getOptions(row.id)}
onSelect={this.onOptionSelect}
placeholder="Select something"
/>
</td>
<td><button onClick={() => { changeStuff(row); }}>{ row.myToggle ? 'Save' : 'Change something' }</button></td>
</tr>
))}
</tbody>
</table>
【问题讨论】:
-
你能准确更新
eslint错误吗? -
你能分享一些代码吗?您可能需要通过状态标志处理列的显示
-
每一行都必须有状态才能做州旗,不是吗?此时,行没有状态。我不想显示所有行的下拉列表,只显示单击按钮的行。
-
@Firice - "分配给函数参数'row'的属性。(no-param-reaassign)"
-
@BenWalker。我已经发布了答案。看看!!
标签: reactjs