reactjs - 如何在 React 中设置一个组件与另一个组件的状态?

标签 reactjs components state

我有一个组件不会呈现这样的内容:

var Application = react.createClass .....

function(....)

module.exports = Application

还有另一个组件,如下所示:

var Tag = react.createClass....
  getInitialState
  //...
  functions
  //...
  setState({ submit: false })
  render: 
  //...

我想更改应用程序标签中提交的状态。这可能吗?

最佳答案

虽然可以从应用程序更改标签的状态,但您确实不应该这样做。此外,我讨厌这些类型的答案,因为我不应该告诉你坏与坏。很好的做法,我应该给你你想要的答案。

我就是这样做的。

如果您需要从应用程序设置标签的状态,您可以执行以下两件事之一:

A. 在应用程序上调用 setState,并将特定的属性传递给标签,您将检查标签以确定是否应该设置状态。您可以在标签的 componentWillReceiveProps 中检查这一点。根据收到的 props,您可以设置 State。请注意,当 componentDidMount 运行时,componentWillReceiveProps 将不会运行,因此您可能需要通过在 componentDidMount< 末尾执行类似的操作来强制它运行:

componentDidMount: function() {

    //other code...

    if (this.props.forceReceiveProps === true) {
        this.componentWillReceiveProps(this.props);
    }
}

B.实现此目的的另一种方法是使用应用程序中对标签的引用。

在应用程序中,您将渲染一些可能带有标签的东西。做这样的事情:

<Tags ref=tagsRef />

然后,在应用程序的某些代码中,您可以执行以下操作:

this.refs.tagsRef.setState({})

编辑:实际上,重读后,您似乎没有在应用程序中渲染。我认为它是您整个应用程序的父级。不确定为什么你不在应用程序中渲染,但足以说明你可能想使用像 Flux 这样的东西。

关于reactjs - 如何在 React 中设置一个组件与另一个组件的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33659132/

相关文章:

javascript - React 渲染不同的组件

javascript - 将 React Ref 从父级传递给子级以获得 DOM 元素

javascript - 如何根据 child 的绝对高度来增加 parent 高度div

javascript - 无法理解选择器和绑定(bind)的使用

c# - 我们什么时候应该为组件实现带有 IContainer 参数的构造函数?

forms - React 状态在表单提交时不断重置。如何持久化状态?

javascript - 从 firebase 进行身份验证后,我想在状态中存储名称、电子邮件

javascript - React,Array obj 上的 TypeError(this.props.data.map 不是函数)

java - 从另一个java类访问组件

c# - 使用父级从组件 Blazor 调用方法