如何使用按钮取消选中所有复选框。在 child 中输入标签,在 parent 中输入按钮。反应 - table

How to Uncheck all checkboxes with a button. Input tag in child and button in parent. react - table

我正在使用 react-table,请参阅以下代码和框 (here)

所以,我正在尝试将一个取消选中函数绑定到一个按钮,这样我选择的所有复选框都将变为未选中状态。该按钮位于 parent 组件中,所有复选框都位于名为 MyCheckbox.

的 child 组件中

我已经尝试了很多东西,似乎 refs 可以。 (如果你找到另一种方式,我洗耳恭听)

从技术上讲,我已经在另一个应用程序 here 中尝试了以下操作并且它有效,但在这种情况下,函数和引用位于 same 组件内。所以我猜我必须通过裁判?或者回调。 (抱歉,我在 refs 有点新,是的,我知道他们是不好的做法)

这是失败的部分:

 unCheck() {
   let ref = "ref_";
   this.refs[ref].checked = !this.refs[ref].checked;
 }

如何将引用从 child 传递给 parent?所以我的 Uncheck 函数可以使用它。

PD。 此外,ToggleAll () 函数选择和取消所有复选框。这是react-table提供的道具。然而,这更像是一个 on/off 开关。我只想要 OFF 部分。在我实际的应用程序中,我也在使用 redux

试试这个:)

 unCheck = () => {
    this.setState({ selection: [] });
  };

也试试这个...

unCheck = () => {
    // let ref = "ref_";
    // this.refs[ref].checked = !this.refs[ref].checked;
    this.state.selectAll = true;
    this.toggleAll();
  };