如何在子组件中设置状态?

Posted

技术标签:

【中文标题】如何在子组件中设置状态?【英文标题】:How do I set a state in a child component? 【发布时间】:2021-11-21 16:45:48 【问题描述】:

假设我有一个组件。

在该组件内部,我调用了一个子组件。

那个子组件有一个状态,我想从父组件中设置它。

组件

// component
// ...

setState( 1 );

<ChildComponent ???setStateFunc=setState???> // This setState should point to the child function

setState( 2 );

// ...
// end component

子组件

// child component
// ...

const [state, setState] = useState(null);

// ...
// end child component

我该怎么做?

【问题讨论】:

【参考方案1】:

如果您希望您的父组件状态应该从子组件更新,请像这样处理您的状态:

将此添加到您的父组件文件:

this.state = 
    value: 0

...

changeHandler = (e) => 
   this.setState(value: e)


...

//Pass this function like this 
<ChildComponent value=this.state.value setValue=(e) => changeHandler(e)>

并通过设置 子组件 文件中的任何值来管理您的 setValue,例如:

...

//For example if you're using TextInput component
<TextInput 
    value=this.props.value
    onChangeText=this.props.setValue
/>
...

希望这对你有用。

【讨论】:

感谢您的回答。这并不完全是我想要的,但仍然相关。我有点在寻找相反的方式。但我已经想出了别的东西

以上是关于如何在子组件中设置状态?的主要内容,如果未能解决你的问题,请参考以下文章

你如何在反应中设置一个组件与不同组件的状态?

如何在反应中设置视频端组件的状态?

如何使用 CSS 模块在 React 中设置子组件的样式

如何使用类对象在 Reactjs 中设置功能性无状态组件的样式

如何在状态挂钩中从获取请求中设置数据(对象数组)?

如何在嵌套函数中在无状态函数中设置状态?