我有输入表单,我在单页网站上的几个地方使用。
有一个名为Subscribe
的react-component 类,其中包含整个<form>
,允许用户输入电子邮件并订阅我的简报。
当用户在任何<Subscribe>
中提交订阅时,我想更改页面上<Subscribe>
出现的每个内容。对于用户实际使用的单个<Subscribe>
来说非常容易,但是我找不到合适的方法来修改其他<Subscribe>
组件的状态。目前我正在使用普通的Javascript来修改DOM节点。
有没有办法在React中直接执行此操作?
答案 0 :(得分:1)
是的,正如你在帖子中所说的那样,用 Flux 可能会做得更好。 您应该存储更改并使用服务操作该存储数据。
您可以查看https://facebook.github.io/flux/以获取更多信息。
但是,如果你正在使用React渲染页面,你可以为该页面设置一个状态,然后在每个<Subscribe>
组件中将其作为prop传递。您应该在同一页面或通过mixin操作此提交,但不要让组件完成工作以更改状态。
在您的信息页中:
getInitialState: function () {
return {
alreadySubscribed: false
};
}
当用户点击“订阅”按钮时:this.setState({alreadySubscribed: true});
当您渲染每个<Subscribe>
组件时,传递道具,例如:disableSubscribe={this.state.alreadySubscribe}