修改触发器上的多个反应组件

时间:2015-06-10 19:01:04

标签: javascript reactjs

我有输入表单,我在单页网站上的几个地方使用。 有一个名为Subscribe的react-component ,其中包含整个<form>,允许用户输入电子邮件并订阅我的简报。

当用户在任何<Subscribe>中提交订阅时,我想更改页面上<Subscribe>出现的每个内容。对于用户实际使用的单个<Subscribe>来说非常容易,但是我找不到合适的方法来修改其他<Subscribe>组件的状态。目前我正在使用普通的Javascript来修改DOM节点。

有没有办法在React中直接执行此操作?

1 个答案:

答案 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}