亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 ReactJS 的類基組件中以兩種方式數據綁定傳遞數據?

如何在 ReactJS 的類基組件中以兩種方式數據綁定傳遞數據?

墨色風雨 2023-04-27 16:20:17
我的問題在子組件中,我有一個通過 post 方法更新的狀態,我必須在我的父組件中顯示這個狀態,這兩個組件都是類基組件
查看完整描述

2 回答

?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

ReactJS 是一個具有單向數據綁定的庫。所以像Angular或VueJS這樣的數據是不可能傳遞的。您應該將處理程序函數傳遞給子組件,然后在Axios回答更新本地組件和父組件之后。


并且這里有個小提示,類組件和函數組件對你的情況沒有區別。注意示例代碼:



class ParentComponent extends React.Component {

  state = {

    data: undefined,

  };


  handleGetData = data => {

    this.setState({

      data,

    });

  };


  render() {

    return (

      <ChildComponent onGetData={this.handleGetData} />

    );

  }

}

現在在ChildComponent中,您可以訪問處理函數:


class ChildComponent extends React.Component {

  componentDidMound() {

    const { onGetData } = this.props;


    Axios

      .get('someSampleUrl')

      .then( (data) => {

        onGetData(data); // running this update your parent state

      });

  }


  render() {

    return (

      <div />

    );

  }

}


查看完整回答
反對 回復 2023-04-27
?
慕萊塢森

TA貢獻1810條經驗 獲得超4個贊

React 的做法是單向的。為了獲得最佳實踐,您必須將狀態“提升”到父組件中。


但是,如果您希望專門向上傳遞數據,則需要將回調作為 prop 向下傳遞。使用該回調函數向上傳遞數據:


家長:


<Parent>

   <Child callback={console.log} />

</Parent>

孩子:


const Child = (props) => {

    const { callback } = props;

    const postData = (...) => {

        ...

        callback(result);

    }

    ...

}


查看完整回答
反對 回復 2023-04-27
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號