Javascript if-else内部映射函数
我有一个错误: 无法读取未定义的属性“map” 我的JSON数据:Javascript if-else内部映射函数,javascript,reactjs,dictionary,Javascript,Reactjs,Dictionary,我有一个错误: 无法读取未定义的属性“map” 我的JSON数据: { "data": [ { "id": 1, "attention": 1 }, { "id": 2, "attention": 1 }, { "id": 3, "attention": 0
{
"data": [
{
"id": 1,
"attention": 1
},
{
"id": 2,
"attention": 1
},
{
"id": 3,
"attention": 0
}
]
}
_handleOutput() {
var att = data.attention.map(function (data) {
return data.attention
});
}
console.log(att)
是否可以使用if-else将JSON输出数据与ReactDOM
进行比较?大概是这样的:
if (data.attention === true || "1") {
return <span>✅</span>;
} else {
return <span>❌</span>;
}
if(data.attention==true | |“1”){
返回✅;;
}否则{
返回❌;;
}
然后我将输出到表list{this.\u handleOutput()}
内部组件定义渲染函数
render(){
return (
<div>
{obj.data.map(a=>{
if(a.attention===1)
return <span>✅</span>
return <span>❌</span>;
})}
</div>
)
}
render(){
返回(
{obj.data.map(a=>{
如果(注意===1)
返回✅;
返回❌;;
})}
)
}
数据
是数组
,而不是数据。注意
,此地图
不起作用<代码>映射正在数组中工作。您正在尝试调用数字字段上的映射。它应该是data.map
。数据是您的数组而不是数据。注意。因此,请这样使用:
{
"data": [
{
"id": 1,
"attention": 1
},
{
"id": 2,
"attention": 2
},
{
"id": 3,
"attention": 0
}
]
}
var att = data.map(function (data) {
return data.attention
});
console.log(att)
var数据=[
{
“id”:1,
“注意”:1
},
{
“id”:2,
“注意”:2
},
{
“id”:3,
“注意”:0
}
]
var att=data.map(数据=>{
控制台日志(数据);
如果(data.attention==1){
返回“✅;”;
}否则{
返回“非源”;
}
});
控制台日志(att);
尝试解决方案中的错误
- 用于返回jsx元素的副本
- 在数组中循环时使用,而不是写入item.attention
- 检查值,所以基本上我们可以使用三元检查(真?1:0),因为注意值是1或0,表示真或假,我们可以这样使用它李>
- 您可以使用
const jsonData={
“数据”:[{
“id”:1,
“注意”:1
},
{
“id”:2,
“注意”:1
},
{
“id”:3,
“注意”:0
}
]
}
常量应用=()=>{
报税表(
{
jsonData.data.map(({attention})=>{
返回(
{
注意:;
:
❌
}
)
})
}
)
}
ReactDOM.render(,document.getElementById('root'))
确保可以在闭包中使用控制结构。但是您的问题可能是条件data.attention==true | |“1”
。这不是你想的那样。你不能走这样的捷径。你必须写data.attention===true | | data.attention===“1”
或类似的东西…数据。attention
是错误的:1。这里没有定义数据
变量。2.您有一个具有属性数据的对象,因此必须执行obj.data
。3. <代码>注意也不是数组的属性。@android1751在react中,您可以这样定义,而不是将其添加为答案。您有足够的声誉来评论一行。除非是代码片段或较长的描述,否则尽量不要增加答案部分。@AyushiKeshri感谢您的建议。我总是尝试添加代码段,但对于一些办公室工作来说,这是不可能的。
{
"data": [
{
"id": 1,
"attention": 1
},
{
"id": 2,
"attention": 2
},
{
"id": 3,
"attention": 0
}
]
}
var att = data.map(function (data) {
return data.attention
});
console.log(att)
var data = [
{
"id": 1,
"attention": 1
},
{
"id": 2,
"attention": 2
},
{
"id": 3,
"attention": 0
}
]
var att = data.map(data => {
console.log(data);
if (data.attention === 1) {
return '<span>✅</span>';
} else {
return 'Not Fount';
}
});
console.log(att);