在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ react中使用{}進(jìn)行渲染時(shí)對(duì)象深度遍歷問題

react中使用{}進(jìn)行渲染時(shí)對(duì)象深度遍歷問題

求助大佬,我有這種需求,數(shù)據(jù)結(jié)構(gòu)是{國(guó)家:{?。簕市:縣}}}這種嵌套的,我想遍歷展示出來,但是不知道語法怎么寫,下圖這種寫法報(bào)錯(cuò)。我知道一種解決方式是將每個(gè)級(jí)別抽出一個(gè)組件,但是如果這里我只能有jsx的{}來渲染,我想請(qǐng)問一下正確的語法應(yīng)該怎么寫?

圖片描述

回答
編輯回答
悶油瓶

return只能返回一個(gè)節(jié)點(diǎn),可以吧返回的兩個(gè)節(jié)點(diǎn)包一下,比如:

<div>
    <label>{province.name}</label>
    {...}
</div>

另外,map直接返回一個(gè)值,沒有其他操作的時(shí)候可以直接使用()代替{ return ... },比如

arr.map(item => (
    <div> 

        <label>{province.name}</label>
        {...}
    </div>
))

看起來會(huì)清晰一些

2017年5月11日 03:48
編輯回答
尤禮

return可以返回的類型有:string, array, function/class, null。
你在遍歷里面一個(gè)return返回多個(gè)標(biāo)簽是會(huì)報(bào)錯(cuò)的??梢赃@么改:


return [
  <label key={province.name}>{province.name}</label>,
  {
    province.cities.map()
  }
];

cities中的return也可以利用數(shù)組形式返回。

如果你不用數(shù)組,那么就得在外層加一個(gè)標(biāo)簽了:

return (
  <div key={province.name}>
   <label>{province.name}</label>
   {
     province.cities.map()
   }
  </div>
);
2017年12月11日 23:37
編輯回答
病癮

報(bào)錯(cuò)是因?yàn)榉祷刂涤袉栴},jsx 每次return必須是一個(gè)節(jié)點(diǎn),不能是多個(gè)。

...
return(
    <div>
        <label> .... </label>
        {}
    <div>
)
...

而你的return,label是一個(gè)節(jié)點(diǎn), {} 也是一個(gè)節(jié)點(diǎn),所以報(bào)錯(cuò)了

2017年6月16日 18:49