【问题标题】:How can i pass data from parent to child using props如何使用道具将数据从父母传递给孩子
【发布时间】:2019-11-28 02:52:17
【问题描述】:

我在 reactJs 中有父子组件,我想使用 props 将父数据传递给详细组件。

我尝试如下所示,但我无法显示数据,不断将我重定向到父组件

父/母页

render() {
    const cardKeys = Object.keys(cardData);
    return (
      <div className="scroll-list">
        {cardData.data.Table.map((results, index) => {
          return (
            <div class="col-sm-3">
              <div class="card ">
                <div class="card-body">
                  <div class="row">

                    <div class="col-md-9 col-sm-9">
                      <a href="mailto:{results.email_address}">{results.id}</a>
                    </div>
                  </div>
                  <div class="row">                   
                    <div class="col-md-9 col-sm-9">
                      <a href="mailto:{results.email_address}">
                        {results.first_name}
                      </a>
                    </div>
                  </div>

                </div>
              </div>
            </div>
          );
        })}
      </div>
    );
  }
}

卡片详情/子组件

const Card = props => {
  const { id } = props.match.params;
  return (
    <div className="card-details">
      <h2>{cardData.data.Table[id].first_name}{cardData.data.Table[id].last_name}</h2>
      <h2>{cardData.data.Table[id].email_address}</h2>    
      <Link
        to={{
          pathname: "/cards",
          state: props.location.state
        }}
      >
        <button>Return to list</button>
      </Link>
    </div>
  );
};

主应用路由器组件 函数应用程序(){ 返回 ( ); }

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    您需要像这样更新代码。 添加home的路由路径如

        <Route path="/" component={Cards} />
    

    在你的子组件中

          var x = this.props.cardData;
          var id = 1001; //need to change/get from parent id value
          var index = 0; 
          for(var i = 0; i<x.data.Table.length; i++) {
             if(id === x.data.Table[i].id) { 
               index = i; 
             } 
          } 
          // const id = 0; 
          return ( <div className="card-details">
                     <h2> {cardData.data.Table[i].first_name} 
                     {cardData.data.Table[i].last_name} 
                     {cardData.data.Table[i].email_address} </h2>
    

    你剩下的代码在这里

    还有一件事是将 class="" 更改为 className="";

    希望这能解决您的问题。

    【讨论】:

    • 我在这一行得到TypeError: Cannot read property 'props' of undefined &gt; 99 | var x = this.props.cardData;
    • 不,我会回答的,但我想让这部分工作完成 90%,谢谢
    • 如何导入 cardData 你的意思是 .json 文件?我正在工作codesandbox.io/s/beautiful-gates-2xkl7.. 我创建了详细信息页面
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多