javascript - react : Pass function to child component

标签 javascript reactjs

我尝试将函数传递给我的子组件。对于每个子组件,当用户单击它们时,将调用 onclick 函数。这个onclick函数被写入到父组件中。

父组件:

class AgentsList extends React.Component {
  constructor(props) {
    super(props);
  }

  handleClick(e) {
    e.preventDefault();
    console.log(this.props);
  }

  render() {
    const { agents } = this.props;

    ...

    var agentsNodes = agents.map(function(agent, i) {
      if(agent.id_intervention == "") {
        return (
          <Agent agent={agent} key={i} ticket={t} id={row_names} onClick={this.handleClick.bind(this)} />
        );
      }
    });
    return (
      <div id="agents">
        <div className="agents-title">
          <h3>Title</h3>
        </div>
        {agentsNodes}
      </div>
    );
  }
}

子组件:

class Agent extends React.Component {
  constructor(props) {
    super(props);
  }

  render() {
    const { agent, t } = this.props;

    return (
      <Link to='/' onClick={this.props.onClick}>
        ...
      </Link>
    );
  }
}

在这一行:<Agent agent={agent} key={i} ticket={t} id={row_names} onClick={this.handleClick.bind(this)} />

它说handleClick未定义... 我该如何解决这个问题?

感谢您的回答。

最佳答案

您需要将 Agent 绑定(bind)到 AgentsList: 这是您的代码的一个简单示例,我不得不删除一些内容,但您明白了:

http://jsfiddle.net/vhuumox0/19/

var agentsNodes = agents.map(function(agent, i) {
  if(agent.id_intervention == "") {
    return (
      <Agent agent={agent} key={i} ticket={t} id={row_names} onClick={this.handleClick.bind(this)} />
    );
  }
}, this); // here

关于javascript - react : Pass function to child component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37636259/

相关文章:

c# - document.readyState == "complete"始终为假。状态始终为 "interactive"

javascript - 将实例变量传递给 js.erb 文件 (Rails 3/jQuery)

javascript - 显示椭圆形黑球的 Canvas 弹跳球

javascript - 如何 "NaNundefined"[10] ="e"或者 ([+[][[]]]+[][[]])[++[[]][+[]]+[+[]]] = "e"?

javascript - 将局部变量传递到另一个 View 的 JS - Rails

javascript - 如何使用 react-spring 实现设计?

javascript - React/javascript 如何将 json 形式的表数据导出到可下载的 Excel 中

javascript - onClick 调用 fetch 函数时的 ReactJS 组件生命周期。单击时状态对象消失

reactjs - 在编写任何代码之前设计 React.js UI 的一个好的图表是什么?

javascript - React Redux - 存储更新、组件重新渲染……但不使用新数据