【发布时间】:2021-12-27 01:31:53
【问题描述】:
我是 React 新手,我刚刚开始了一个新项目来学习它。目前我被困在如何从另一个组件呈现的组件中精确计算值。我将给出一个示例代码来更好地解释自己。
假设我已经构建了组件水果和蔬菜,它们每个都有
this.state = {
price: 0,
}
以后
this.setState({price:/*randomly generated positive integer*/})
我尝试将它们封装在一个名为 Base 的新组件中。在 Base 的 render() 函数中,我有:
render() {
return (
<>
<Fruit></Fruit>
<Vegetables></Vegetables>
<button onClick={() => this.add()}>Add Prices!</button>
</>
)
}
其中 add() 函数旨在添加先前呈现的水果和蔬菜价格的价格。我尝试为它们分配一个 id 并使用 DOM 来获取它们的值,但我无法访问它们的 this.state。有没有办法实现这一点,或者,在 React 中这样做的常见做法是什么?提前感谢您的任何指导!
【问题讨论】:
-
为此,您通常会将每个子组件的价格状态带到父 Base 组件,以便您可以在父组件中更新它。您可以使用道具将单个价格值传递给子组件
-
感谢您的回答。不过我想知道,由于我的 Base 组件只是项目中所有内容的包装器,如果我在 Base 本身中包含价格,它会不会导致更多的耦合?
-
不是真的,因为如果您只想在给定时间在不同的屏幕上。但是您可以将 Base 组件重命名为 HomeScreen 或这些词中的其他名称。
标签: javascript reactjs react-component