【发布时间】:2017-04-12 17:36:48
【问题描述】:
我知道我们可以在 stackoverflow 上找到很多类似的问题。我正在使用 ReactJS。
<body>
<table>
<tbody>
<tr>
<td>
<input type="checkbox" id="checkbox1">
<p>Check 1</p>
<a></a>
</td>
</tr>
<tr>
<td>
<input type="checkbox" id="checkbox1">
<p>Check 2</p>
<a></a>
</td>
</tr>
</tbody>
</table>
</body>
这是我正在使用的示例。有超过 35 个复选框,每当我点击其中任何一个时,页面都会跳到顶部。[![在此处输入图像描述][1]][1]
正如我在带有 100 个复选框的简单 html 页面上尝试过的那样,它工作正常,但在我的 React 代码中。有跳转
这是我处理更改事件的方式:
<input type="checkbox" onChange={this.props.checkedList} name="article" value={item.id}/>
checkedList(e) {
let id = e.target.value
if (this.state.marked.includes(id)) {
let filteredArray = this.state.marked.filter(item => item !== id)
this.setState({marked: filteredArray});
}
else {
this.setState({marked: this.state.marked.concat(id)});
}
}
【问题讨论】:
-
你是如何处理 Check 事件的?
-
当你在事件中调用 setState 时,它会再次渲染组件
-
@RichaGarg 评论这些行有效,但你能告诉我应该如何跟踪检查的项目
-
您能否分享您的整个代码。
marked状态是父组件的状态,更改后会再次渲染它。 -
@RichaGarg 我不能发布更多代码,因为它很大,你能告诉我一些复选框值如何存储在 React js 中的例子吗?谢谢
标签: javascript html css reactjs