【发布时间】:2017-10-07 18:58:39
【问题描述】:
将以下代码转换为无状态组件的正确方法是什么?
export default class About extends Component {
state = {
showKitten: false
}
handleToggleKitten = () => this.setState({ showKitten: !this.state.showKitten });
render() {
const { showKitten } = this.state;
const kitten = require('./kitten.jpg');
return (
<div className="container">
{showKitten && <div><img src={kitten} alt="kitchen" /></div>}
</div>
);
}
}
管理定义道具等。以下代码用于记录消息。但是切换布尔值的最佳方式是什么?
const handleToggleKitten = () => {
console.log('Hello from here');
**// How to toggle the value of boolean here?**
};
const About = (props) => {
const { showKitten } = props;
const kitten = require('./kitten.jpg');
return (
<div className="container">
{showKitten && <div><img src={kitten} alt="kitchen" /></div>}
</div>
);
};
About.defaultProps = {
showKitten: false
};
About.propTypes = {
showKitten: PropTypes.bool.isRequired
};
【问题讨论】:
-
handleToggleKitten是如何调用的?我认为不需要这种方法。同时删除对所需属性没有意义的defaultProps。 -
错过了那部分,通过按钮 onClick 就像下面的代码一样。