Airbnb JS StyleGuide 和 history.push 不要合并
Airbnb JS StyleGuide & history.push don't combine
我正在编写一个 React 应用程序,即导航栏。
我在那里有一个徽标和 navItems。
导航栏背景的徽标显示和颜色是有条件的。
将 Aibnb 指南添加到 esLint,现在我的导航栏代码如下所示:
class Toolbar extends Component {
handleClick = () => {
this.props.history.push('/');
}
render() {
const { color, showLogo } = this.props;
return (
<header
style={{
backgroundColor: color,
}}
className={classes.Toolbar}
>
<Logo click={this.handleClick} show={showLogo} />
<NavItems />
</header>
);
}
}
Toolbar.propTypes = {
color: PropTypes.string.isRequired,
showLogo: PropTypes.string.isRequired,
};
export default withRouter(Toolbar);
我收到以下 eslint 错误:
(第 11 行)是
this.props.history.push('/');
如何改造这个方法使代码编译无误?
(试图将其重写为破坏性的 props 赋值,出现无法获取 'push' of undefined 的错误)
你应该更新
Toolbar.propTypes = {
color: PropTypes.string.isRequired,
showLogo: PropTypes.string.isRequired,
history:PropTypes.node
};
或
const {history} = this.props
更新
history:PropTypes.shape({push:PropTypes.func})
设置 history
PropType 将帮助您摆脱错误:
Toolbar.propTypes = {
color: PropTypes.string.isRequired,
showLogo: PropTypes.string.isRequired,
history: PropTypes.shape({
push: PropTypes.func.isRequired,
}).isRequired,
};
我正在编写一个 React 应用程序,即导航栏。 我在那里有一个徽标和 navItems。 导航栏背景的徽标显示和颜色是有条件的。 将 Aibnb 指南添加到 esLint,现在我的导航栏代码如下所示:
class Toolbar extends Component {
handleClick = () => {
this.props.history.push('/');
}
render() {
const { color, showLogo } = this.props;
return (
<header
style={{
backgroundColor: color,
}}
className={classes.Toolbar}
>
<Logo click={this.handleClick} show={showLogo} />
<NavItems />
</header>
);
}
}
Toolbar.propTypes = {
color: PropTypes.string.isRequired,
showLogo: PropTypes.string.isRequired,
};
export default withRouter(Toolbar);
我收到以下 eslint 错误:
(第 11 行)是
this.props.history.push('/');
如何改造这个方法使代码编译无误?
(试图将其重写为破坏性的 props 赋值,出现无法获取 'push' of undefined 的错误)
你应该更新
Toolbar.propTypes = {
color: PropTypes.string.isRequired,
showLogo: PropTypes.string.isRequired,
history:PropTypes.node
};
或
const {history} = this.props
更新
history:PropTypes.shape({push:PropTypes.func})
设置 history
PropType 将帮助您摆脱错误:
Toolbar.propTypes = {
color: PropTypes.string.isRequired,
showLogo: PropTypes.string.isRequired,
history: PropTypes.shape({
push: PropTypes.func.isRequired,
}).isRequired,
};