Javascript 仅当this.props.data.length位于同一块中时,this.props.data.maps不是函数
我有一些奇怪的行为。下面的this.props.data是我的Redux存储中的一个数组,我可以看到当发生此错误时,它不是未定义的或空的 当我拿出下面的Javascript 仅当this.props.data.length位于同一块中时,this.props.data.maps不是函数,javascript,reactjs,map-function,Javascript,Reactjs,Map Function,我有一些奇怪的行为。下面的this.props.data是我的Redux存储中的一个数组,我可以看到当发生此错误时,它不是未定义的或空的 当我拿出下面的this.props.data.length>5时,一切都很好。。但是一旦我添加了它,我的项目就会抛出错误this.props.data.maps不是一个函数 { ((this.props.data) !== undefined) ? ( ((this.props
this.props.data.length>5
时,一切都很好。。但是一旦我添加了它,我的项目就会抛出错误this.props.data.maps不是一个函数
{
((this.props.data) !== undefined) ? (
((this.props.data).length > 0) ? (
(this.props.data).map((index) => {
var numberSize = '';
if (index.number > 100000 === 0) {
numberSize = 'Huge number';
} else if (index.number > 1000 === 0) {
numberSize = 'Big number'
} else if (index.number > 100 === 0) {
numberSize = 'Medium number';
} else {
numberSize = 'Small number';
}
return (
<div>
{numberSize}
</div>
);
})
//..beginning here
((this.props.data).length < 5) ? (
<button onClick={this.addToArray}>Add a number to the data</button>
) : (
<span>The data array is full (5 objects). No Numbers can be added.</span>
)
//..ending here. If I take this out, everything runs fine.
) : (
<button onClick={this.addToArray}>Add a number to the data</button>
)
) : (
<button onClick={this.addToArray}>Add a number to the data</button>
)
}
{
((this.props.data)!==未定义)(
((this.props.data).length>0)(
(this.props.data).map((索引)=>{
var numberSize=“”;
如果(index.number>100000==0){
numberSize=‘巨大的数字’;
}否则如果(index.number>1000==0){
numberSize=‘大数字’
}否则如果(index.number>100==0){
numberSize='中间编号';
}否则{
numberSize=‘小数字’;
}
返回(
{numberSize}
);
})
//…从这里开始
((此道具数据)。长度<5)(
在数据中添加一个数字
) : (
数据数组已满(5个对象)。无法添加任何数字。
)
//…到此为止。如果我把这个拿出来,一切都会好的。
) : (
在数据中添加一个数字
)
) : (
在数据中添加一个数字
)
}
有人知道为什么在this.props.data.length>5中添加this.props.data.maps不是函数的错误吗
谢谢条件运算符处缺少一个)
。更重要的是,下面的.map()
调用不清楚什么是逻辑
省略不必要的括号,我们发现如果未使用&&
和或|124;
或调用.map()
后将出现语法错误。这让我们回到javascript
后面的.map()
部分的预期结果是什么
this.props={data:[1,2,3]};
this.props.data!==未定义
? this.props.data.length>0
? this.props.data.map((索引)=>{
控制台日志(索引);
//…一些回归的逻辑
回报率(指数*10);
})
// &&
/*
这里有语法错误
*/
//…从这里开始
this.props.data.length<5
? log(“小于5”,this.props.data.length)
:console.log(“大于5”,this.props.data.length)
//…到此为止。如果我把这个拿出来,一切都会好的。
:console.log(“内部”)
:console.log(“外部”)
在条件运算符处缺少关闭)
?另外,调用.map()
之后是否需要一个进程?需要什么逻辑?我已经更新了我的代码,用一个例子来说明我所说的“逻辑”是什么意思。是的,在.map()
调用的每个循环中都会发生一个进程,更新的代码也应该有助于澄清这一点。如果没有,请告诉我。你能澄清一下你在哪里看到丢失的)
?问题不是.map()
,而是.map()
((数据).length<5)后面的表达式?():()
这就是您看到缺少的)
?我尝试添加了&&或| |,但这会导致.map
函数中的第一个div不显示(在您的示例中是返回(索引*10);
行)