javascript - 避免渲染中的绑定(bind),同时维护父组件的上下文

标签 javascript reactjs

我目前使用 onClick 处理程序呈现(TableHeader 组件)表标题,该处理程序在触发时捕获标题的值并在父组件中设置状态(父组件是一个表组件,子组件是表头)。

我想避免在 TableHeader 的 render 方法中绑定(bind) onClick 函数,同时仍然保持对父组件上下文的访问。目前我拥有的:

render() {
  return (
  ...
    <tr>
      {columns.map(col => <th key={col} onClick={this.props.onClick.bind(null, col)} {...hoverHandlers}>{col}</th>)}
    </tr>
  )
}

传递给每个 th 的函数只是获取列的值并相应地进行排序。

在父组件的构造函数中,该函数被绑定(bind):

this.sortColumns = this.sortColumns.bind(this);

然后通过:

<TableHeader onClick={this.sortColumns} />

最佳答案

更改 sortColumns() 以将 col 变量作为参数。然后更新 render() 以传递变量。

render() {
  return (
   ...
   <tr>
     {columns.map(col => <th key={col} 
        onClick={function() { this.props.onClick(col) } } 
        {...hoverHandlers}>{col}</th>)}
   </tr>
   )
}

关于javascript - 避免渲染中的绑定(bind),同时维护父组件的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44377237/

相关文章:

javascript - 何时使用 React.Fragments?

java - 我可以使用 ScriptableObject 在 Java 中构建 Rhino JavaAdapter 吗?

html - 使用 ReactToPrint 时,Chrome 中的横向设置不可用

javascript - 如何在独立的 React 中使用 React Hooks?

javascript - 如何在 js 脚本中读取 docker 环境变量?

javascript - 如何访问 React props 中的嵌套对象属性

javascript - 在 jqGrid 的标题和网格本身之间放置一个空的 div

javascript - 使用 Font Awesome 禁用 sr-only span 元素

javascript - react-bootstrap-table2 自定义验证器错误消息出现在 UI 中

reactjs - 如何修复 axiosInstance.get ('url' 失败的 moxios 测试。then(...).finally 不是一个函数