我目前的父母设置如下,然后将道具传递给
class WorkoutPlan extends React.Component {
constructor() {
super();
this.state = {
workoutPlan: {}
};
}
componentDidMount() {
axios
.get("/api/workout-plan")
.then(response => {
this.setState({ workoutPlan: response.data });
})
.catch(error => {
console.log(error);
});
}
render() {
const { workoutPlan } = this.state;
// const workoutPlan = this.state.workoutPlan;
return (
<div>
<h1>{workoutPlan.Name}</h1>
<button className="button" onClick={this.handleClick}>
Click Me
</button>
<Workout {...workoutPlan.workout} />
</div>
);
}
}
然后在我的孩子中,我想将相同的道具传递给另一个孩子
import React from "react";
import Exercise from "./Exercise";
const Workout = props => {
return (
<div>
<h2>"Workout for {props.day}"</h2>
<Exercise {...workoutPlan.workout} />
</div>
);
};
export default Workout;
我似乎无法弄清楚该怎么做。有人告诉我设置与第一个孩子完全相同,但是当我输入相同的代码时,它不起作用。
答案 0 :(得分:1)
您可以将{...props}
传递到Exercise
组件,这样您的Workout组件应该看起来像这样
import React from "react";
import Exercise from "./Exercise";
const Workout = props => {
return (
<div>
<h2>"Workout for {props.day}"</h2>
<Exercise {...props} />
</div>
);
};
export default Workout;
答案 1 :(得分:1)
传递道具使之变形时,其效果与传递一个道具时的效果相同。
您无法实现目标,因为在“锻炼”组件中没有“锻炼”道具。
尝试将道具传递给“锻炼”组件,如下所示:
<Exercise {...props} />