【发布时间】:2019-01-10 02:17:55
【问题描述】:
我目前正在创建一个 react 组件,我正在使用 ES Lint 规则 react/jsx-no-bind。我的问题是我希望能够将参数传递给我的组件函数。这是我想使用的代码:
class LanguageDropdown extends Component {
constructor(props) {
super(props);
this.state = {};
}
changeLanguage = (lang) => {
console.log(lang)
};
render() {
return (
<div>
{this.props.languages.map(lang => <button onCLick={() => this.changeLanguage(lang)}>{lang}</button>)}
</div>
)
}
...
这会引发 ESlint 错误:
JSX 属性不应使用箭头函数
我不完全确定如何在不使用箭头函数或使用.bind() 的情况下实现这一点。我可以向按钮元素添加一个数据属性,然后将事件传递给changeLanguage 函数并使用 event.target() 获取属性,但这并不像是在 React 中应该采用的方式.
谁能告诉我正确的方法是什么?
【问题讨论】:
-
如果可以,你为什么要使用规则
no-bind? -
no-bind 是我继承的 es lint 配置的一部分。我相信它的最佳做法?
标签: javascript reactjs eslint