从另一个函数运行PropTypes函数

时间:2018-07-11 09:08:18

标签: reactjs

打扰一下Reactjs菜鸟。 我有以下标记,效果很好。

<ul>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
  <li></li>
</ul>

onFilter在这里定义为一个函数:

...
render() {
  return (
    <UnitsFilter
        onChange={this.props.onFilter}
...

并且:

...
App.propTypes = {
  onFilter: PropTypes.func.isRequired,
...

现在,我需要重新安排,以便在onChange事件上运行两个函数,我将其包装在... const mapDispatchToProps = { onFilter: (id, type) => filterUnits(id, type), ... 中,如下所示:

handleChange

foo函数起作用,但是现在onFilter已损坏。没有错误,没有任何反应。我究竟做错了什么?感谢帮助。

1 个答案:

答案 0 :(得分:0)

您没有从handleChange函数将idtype属性传递给onFilter函数。您可能需要写

handleChange(id, type) {
  this.foo();

  const { onFilter } = this.props;
  onFilter(id, type);
}