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

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

映射存在于對象內部的數組僅在條件語句中給出時有效

映射存在于對象內部的數組僅在條件語句中給出時有效

ITMISS 2022-12-29 16:47:23
我正在使用 Reactjs。我想渲染一個存在于對象內部的數組。state = {   obj: {            name: abhishek,           age: 23,           characterList: ['a','b','c','d']        }}我發現為了呈現 characterList,我必須將其包裝在條件語句中。而且我無法弄清楚原因。不正確:render(){return(         <>             {                 this.state.obj.characterList.map((character, i) => {                      return(                          <h1>{character}</h1>                      )                 })             }         </>      )這會產生錯誤 - “無法讀取未定義的屬性‘map’”但是如果在這樣的條件語句中給出 -正確的:render(){return(         <>             { this.state.obj.characterList ?                (                   this.state.obj.characterList.map((character, i) => {                        return(                            <h1>{character}</h1>                        )                   })               ) : null             }         </>      )原始代碼:給出錯誤(無法讀取未定義的屬性“映射”)export default (props) => {  const [FAQs, setFAQs] = useState([]);  useEffect(async () => {    const res = await Axios.get("http://localhost:5000/FAQs/getFAQs");    setFAQs(res.data);    console.log(res.data);  }, []);  return (    <React.Fragment>      <div className="faqs-wapper">        <div className="faqs-heading">          <h1>Frequently asked questions</h1>          <h2>{FAQs.category}</h2> //This works fine.        </div>        {             FAQs.FAQList.map((QA,i) => {                return (                    <div key={i}>                        <p>{QA.question}</p>                    </div>                )            })        }      </div>    </React.Fragment>  );};
查看完整描述

1 回答

?
浮云間

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

您正在將 FAQs 初始化為useState. 在您的 api 請求完成后,您的setFAQs方法似乎設置FAQs為一個對象,并FAQList作為 FAQs 對象上的鍵。更改setFAQs(res.data)setFAQs(res.data.FAQList)并將您的地圖更改為FAQs.mapFAQs.FAQList.map

您的原始錯誤正在發生,因為該組件在 api 請求完成之前呈現并且FAQs.FAQList未定義。您正在嘗試在此處查找未定義值的屬性:FAQs.FAQList.map這會引發類型錯誤。


查看完整回答
反對 回復 2022-12-29
  • 1 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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