【发布时间】:2020-06-22 05:36:21
【问题描述】:
我正在开发一个简单的食物应用程序。 首先,它会在MenuComponent中显示dishDetails onClick 会将所选菜肴的 Id 传递给名为 getDish(dishdetail) 在这里,我想将 props 或 state 发送到我的 CartComponent,它将显示所选菜肴的详细信息。
问题一 道具没有传递给购物车(未定义的值) 但是如果我在 MenuComponent
中执行 console.log,则会显示 discdetail 名称、id如何将道具/状态传递给购物车,请指导我。
//Here im binding my function
class Menu extends Component {
constructor(props) {
super(props);
this.getDish = this.getDish.bind(this);
}
//This is my getDish function(in which i want to send props to Cart)
getDish(dishDetail) {
return (
<React.Fragment>
<Cart dishdetail={dishDetail}/> **//undefined in Cart**
{console.log({dishDetail.name})} **//it is working perfectly**
</React.Fragment>
);
}
工作正常
从我发送数据的位置 onClick 函数
<button
onClick={() => this.getDish(this.props.dishes[index])}
></button>
【问题讨论】:
-
因为当您更改状态或重新渲染组件时,每个组件都有它的生命周期和生命周期运行,而在这里您没有这样做,所以您需要考虑通过状态设置您的菜式细节然后通过状态变量作为道具
-
我这样做了。但是 setState 在我的情况下也不起作用
-
请指导我完成代码。我该怎么做?
-
Cart组件的外观如何? -
首先将你的代码移动到渲染函数中,我的意思是你通过getDish函数返回的代码,如果你想隐藏它,你可以应用一些条件,然后在getDish函数中为你的dishdetail设置状态并在您执行 setState 时通过 props 传递状态变量,它将自动运行渲染功能,因此您的子组件将被刷新
标签: reactjs undefined react-props setstate