【发布时间】:2016-12-14 01:42:54
【问题描述】:
我正在浏览 React 文档并阅读了这一行(粗体字):
所有 React 组件在其 props 方面都必须像纯函数一样工作。
这是避免意外行为的严格要求还是设计原则?
Facebook 提供的“不纯”函数示例是修改其输入的函数。但看起来 React 组件可以修改它作为输入接收的道具(我已经从他们自己的示例中复制了下面的示例)。
Code Pen: Impure Component w/ Respect to Props?
JSX 代码:
var Withdraw = React.createClass({
render() {
this.props.account.balance -= this.props.amount;
return (
<div>Balance: ${this.props.account.balance} </div>
)
}
})
var CounterContainer = React.createClass({
render() {
var account = { balance: 10 }
return (
<div>
<Withdraw account={account} amount={2} />
<Withdraw account={account} amount={2} />
</div>
)
}
})
React.render(<CounterContainer />, document.getElementById('app'))
另外:我知道上面的可以写成一个无状态的功能组件,并且该状态不应该存储在this.state之外。
【问题讨论】:
标签: javascript reactjs