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

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

如何在React中修復“ TypeError:category.map不是函數”錯誤

如何在React中修復“ TypeError:category.map不是函數”錯誤

大話西游666 2021-04-29 14:21:13
我不斷收到categories.map不是函數的錯誤,但我不明白為什么。我正在為從API調用接收的數據設置類別,但一直收到此錯誤。另外,有沒有一種方法可以輕松地調用父對象的子對象?API數據嵌套大約4-5層深度,并且它們都有不同的名稱,那么我將如何遍歷所有這些數據呢?response.data控制臺中的示例(打開了一些嵌套對象)這是我的組件:class Menu extends React.Component {  state = {    categories: []  };  componentDidMount() {    axios      .get("https://www.ifixit.com/api/2.0/categories")      .then(response => this.setState({ categories: response.data }));  }   render() {    let categories = this.state.categories;    return (      <div>        <ul>          {categories.map((m, index) => {            return (              <li key={index}>                {m.children && <Menu categories={m.children} />}              </li>            );          })}        </ul>      </div>    );  }}export default Menu;編輯:當我使用Object.keys它給我的錯誤“未捕獲的不變違規:對象不是有效的React子(找到:具有鍵的對象...)”,然后列出了我正在調用的對象內的所有鍵。有誰知道我可以如何調用該函數(可能是遞歸的?)以將其應用于對象內的所有對象?這是我的更新代碼:class Menu extends React.Component {  state = {    collapsed: false,    categories: []  };  componentDidMount() {    axios      .get("https://www.ifixit.com/api/2.0/categories")      .then(response => this.setState({ categories: response.data}));  }   render() {    const { categories } = this.state;    return (      <div>        {Object.keys(categories).map((item, i) => (          <li key={i}>            <span>{categories[item]}</span>          </li>        ))}      </div>    );  }}export default Menu;
查看完整描述

2 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

問題是response.data不是,array但它是一個json對象。


您可以使用以下代碼基于鍵進行映射:


Object.keys(categories).map((key, index) => {

  console.log(categories[key]);

});


查看完整回答
反對 回復 2021-05-20
  • 2 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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