【发布时间】:2020-09-08 20:37:42
【问题描述】:
代码(有效的代码):
const member = [
{
"key": 14,
"pid": "test3",
"name": "test3",
"gender": "other",
"age": 3
},
{
"key": 13,
"pid": "test4",
"name": "test4",
"gender": "male",
"age": 4
},
{
"key": 12,
"pid": "test5",
"name": "test5",
"gender": "male",
"age": 5
}
]
const print = member.filter(x => x.gender === 'male');
console.log(print);
code2(我想让它工作的代码):
const originData = this.props.results;
const member = JSON.stringify(originData)
const print = member.filter(x => x.gender === 'male');
console.log(print);
错误代码(使用code2时发生的错误):
TypeError: Cannot read property 'filter' of undefined
Container.render
D:/test/containers/member/Container.js:426
423 |
424 |
425 |
> 426 | const space = member.filter(x => x.gender === 'male');
| ^ 427 | console.log(space);
console.log(JSON.stringify(this.props.results)) :
[
{"key":14,"pid":"test3","name":"test3","gender":"other","age":3},
{"key":13,"pid":"test4","name":"test4","gender":"male","age":4},
{"key":12,"pid":"test5","name":"test5","gender":"male","age":5}
]
console.log(this.props.results):
const成员数据和json数据都是同一个组件,但是我想知道为什么上面的代码有效,下面的代码无效。
我想使用 json 数据进行分类,而不是 const 成员数据,但它不起作用。如果你知道,请告诉我
【问题讨论】:
-
代码 2 中的成员是字符串,不能使用字符串进行过滤
-
完成上一个答案 JSON.stringify 会将您的对象转换为字符串。
-
将其设为数组而不是字符串来解决吗?
-
我们不知道你的道具是什么,但也许你可以简单地做: const member = this.props.results;
-
谢谢,但结果是一样的。 ;)