gpt4 book ai didi

reactjs - 无法读取React中未定义的属性 'map'

转载 作者:行者123 更新时间:2023-12-03 13:28:20 25 4
gpt4 key购买 nike

我有以下组件,它是从容器组件调用的。容器组件传递 transactions 属性。

我知道 prop 中的 data 属性正在正常传递并且具有数据,并且可以通过 console.log 调用进行访问。但是,当我尝试映射数据并创建列表时,出现错误:无法读取未定义的属性“map”

数据如下:

[
{"transid":3426,"acct":"acct1","category":"Auto"},
{"transid":3427,"acct":"acct2","category":"Subscriptions"}
]

我做错了什么?

import React from 'react';


export default function TransactionManagerView (props) {

console.log(props.data);

return (
<ul>
{
props.data.map(function(el,index) {
return <li key={index}>{el.category}</li>
})
}
</ul>
)

}

最佳答案

检查未定义的 prop.data,然后渲染组件,因为 props 可能最初不提供数据,但在第二次渲染中可用。这应该可以解决你的问题

class App extends React.Component {
render() {
var data = [
{"transid":3426,"acct":"acct1","category":"Auto"},
{"transid":3427,"acct":"acct2","category":"Subscriptions"}
]
return (
<div ><TransactionManagerView data={data}/></div>
)
}

}



const TransactionManagerView = function(props) {

console.log(props.data);

return (
<ul>
{
props.data && props.data.map(function(el,index) {
return <li key={index}>{el.category}</li>
})
}
</ul>
)

}

ReactDOM.render(<App/>, document.getElementById('app'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/0.14.8/react-dom.min.js"></script>
<div id="app"></div>

关于reactjs - 无法读取React中未定义的属性 'map',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41509532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com