第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

如何從 `componentDidMount ` 獲取狀態(tài)(使用 Redux)?

如何從 `componentDidMount ` 獲取狀態(tài)(使用 Redux)?

心有法竹 2023-04-27 10:25:21
我對 React 和 Redux 很陌生,所以問題可能很明顯。我嘗試使用 fetch API 從我的服務(wù)器通過用戶 ID獲取一些信息componentDidMount我對 DC 的本地狀態(tài)沒有問題——我需要從 Redux獲取用戶 IDimport React from 'react';import {connect} from 'react-redux';class DrinkPage extends React.Component {  constructor() {    super();    this.state = {      DCs: [],    };  }  async componentDidMount() {    const response = await fetch(      `http://localhost:5000/api/drinks/users/${this.props.currentUser.id}`,    );    console.log(this.props.currentUser.id);    const json = await response.json();    await this.setState({DCs: json.drinkCons});  }  render() {    const DC = this.state.DCs;    console.log(this.props.currentUser, 'render');    return (      <div className="App">        <CardList DCs={DC} />      </div>    );  }}const mapStateToProps = (state) => ({  currentUser: state.user.currentUser,});export default connect(mapStateToProps)(DrinkPage);但是當(dāng)我嘗試從中獲取當(dāng)前用戶的狀態(tài)時,componentDidMount()它是null。在渲染中,它實際上顯示了狀態(tài)。我應(yīng)該怎么做才能從服務(wù)器獲取狀態(tài)componentDidMount()并成功從服務(wù)器獲取信息?
查看完整描述

1 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗 獲得超9個贊

我找到了答案。


我應(yīng)該用componentDidUpdate()而不是componentDidMount()


并且還需要檢查狀態(tài)以避免無限循環(huán)。


所以最后componentDidUpdate()應(yīng)該是這樣的:


    async componentDidUpdate() {


        const response = await fetch(`http://192.168.0.16:5000/api/drinks/users/${this.props.currentUser.id}`);

        const json = await response.json();

        if (this.state.DCs.length === 0) {

            await this.setState({ DCs: json.drinkCons });

        }

    }


查看完整回答
反對 回復(fù) 2023-04-27
  • 1 回答
  • 0 關(guān)注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號