【发布时间】:2019-01-12 22:54:22
【问题描述】:
我有一个使用 react-redux 连接到商店的组件(为简单起见,我缩短了代码):
const Address = (props) => {
const { userAddresses, removeAddress } = props
let { showEdit } = props
return (
<div>
{userAddresses.map(address => (
<div key={address.id}>
<p>{address.name}</p>
<Button onClick={removeAddress.bind(this, address)}>Delete</Button>
</div>
))}
<Button
onClick={() => { showEdit = true }}>
Add new
</Button>
{showEdit ? (
// show some edit stuff here!!!
): null}
</div>
)
}
const mapState = state => {
return {
userAddresses: state.account.userAddresses,
showEdit: false
}
}
const mapDispatch = (dispatch) => {
return {
addAddress: address => dispatch(addUserAddress(address)),
removeAddress: address => dispatch(removeUserAddress(address)),
}
}
export default connect(mapState, mapDispatch)(Address)
当您单击按钮 (Add new) 时,应该会弹出一个表单(标记为 show some edit stuff here!!!)。我知道如果Address 是一个状态组件,这很容易做到。但是,我需要使用react-redux,据我所知,您必须使用无状态组件才能使用react-redux。谁能指出我正确的方向?
【问题讨论】:
-
你可以签出 redux-form redux-form.com/8.1.0
-
感谢标题中固有的讽刺意味。
标签: javascript reactjs redux react-redux react-props