javascript - 如何将 React prop 从父级传递给子级,再传递给另一个子级?

标签 javascript reactjs parent-child prop

我目前的 Parent 设置如下,然后我将其传递给

 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>
    );
  }
}

然后在我的 child 中,我想将这些相同的 Prop 传递给另一个 child

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;

我似乎不知道该怎么做。有人告诉我,设置与第一个 child 完全相同,但是当我输入相同的代码时,它不起作用。

最佳答案

您可以将 {...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;

关于javascript - 如何将 React prop 从父级传递给子级,再传递给另一个子级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58019163/

相关文章:

javascript - Node 相当于 Perl 神奇的 `tie()` 机制( Hook /拦截对变量的访问)?

javascript - Node.js 重击 :/usr/local/bin/node: Permission denied

reactjs - 我可以(或者我应该)在 React.js 中将 7-1 模式与 SASS 一起使用吗?

javascript - 如何映射外部 JSON 数据?

javascript - 检查元素显示子 div

elasticsearch - 使用父子关系重新索引 Elasticsearch 索引

ios - 在 Swift 中将数据从 View Controller 传递到 Child Controller

javascript - 尝试测试异步函数抛出时 Jest 测试失败

javascript - 使用 javascript 键盘输入使 <canvas> 中的图像移动?

reactjs - 流程给出错误 "Cannot assign [value] to this.[property] because property [property] is missing in [class]"