ReactJS:映射对象数组的解构变量未定义

我正在尝试映射对象数组[{ingredient: '', quantity: ''}]并通过解构从中获取属性,这是代码


 <ul>

     {this.state.ingredients.map(({ ingredient, quantity }, k) => {

        return (

          <div key={k}>

            <li key={k}>{ingredient} - {quantity}</li><br />

          </div>

        )

     })}

 </ul>

成分和不确定数量的回报甚至认为他们在状态值,但也有一些东西,有许多<li>在<ul>作为对象数组的lenght。那么这怎么可能呢?有什么办法可以解决吗?


这是控制台日志记录:

http://img1.mukewang.com/60dd66c20001f6eb04690448.jpg

这是记录 state.ingredients 的图像

http://img2.mukewang.com/60dd66ce0001b20804670208.jpg

这就是我从服务器获取成分的方式


 axios.get(`/api/recipe/${params.id}/${params.name}`)

    .then(res => res.data)

    .then(data=>{


        var jdata = JSON.parse(data.recipe)

        this.setState({

           ingredients: jdata.ingredients,

           ... other properties


        })

        console.log(jdata.ingredients)

    })


海绵宝宝撒
浏览 281回答 1
1回答

心有法竹

从输出中console.log(JSON.stringify(jdata.ingredients)),您的数组是数组数组,将数组数组转换为单个数组。this.setState({&nbsp; ...&nbsp; ingredients: [].concat.apply([], jdata.ingredients),&nbsp; ...})const arrays = [[{"ingredient":"sdasd","quantity":"asdas"}],[{"ingredient":"asdasd","quantity":"dsd"}]]const merged = [].concat.apply([], arrays);console.log(merged)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript