onClick函数with redux“presentation”组件中的参数

时间:2017-03-17 08:58:21

标签: javascript reactjs redux react-redux

将对象作为参数传递给redux“表示组件”中的函数的最佳方法是什么?

我有一个text.setTextSize(TypedValue.COMPLEX_UNIT_SP,14); Or textView.setTextSize(TypedValue.COMPLEX_UNIT_PX,getResources().getDimension(R.dimen.font)); 容器组件。在BookList中,我为每本书呈现<BookList />演示组件。

我想在每个BookListRow中创建一个按钮来删除该书。所以我这样做:

<BookListRow/>

这个有效!但我读到,由于性能不佳,最好避免在JSX中使用箭头函数。那么什么是更好的方式?

1 个答案:

答案 0 :(得分:2)

您可以使用类组件:

class BookListRow extends React.Component {
  onBtnClick = () => {
    this.props.deleteBook(this.props.book);
  };

  render () {
    return (
      ...
        onClick={this.onBtnClick}
      ...
    )
  }
}

如果您想使用无状态功能组件,我认为您可以使用memoization来优化

我在这里写了一个非常简单的概念证明:http://codepen.io/CodinCat/pen/NpwLRE?editors=0011

真正的onclick函数只会被声明一次。我们将它们保存到Map,以便每次父组件重新渲染时,我们都可以重复使用它们。

上面的例子只是一个非常简单的PoC。仅当从父级传递的onClick方法不会动态更改时,它才有效。

有一些记忆库,如https://github.com/caiogondim/fast-memoize.js