当从箭头函数返回一个对象时,由于语法的模糊性,似乎有必要使用额外的一组{}和一个return关键字.
这意味着我不能写p => {foo: "bar"},但必须写p => { return {foo: "bar"}; }.
如果箭头函数返回除对象以外的任何内容{},return则不需要,例如:p => "foo".
p => {foo: "bar"}回报undefined.
修改后的p => {"foo": "bar"}抛出" SyntaxError:意外标记:' :'".
有什么明显的东西我不见了吗?
this.props.children当我.map()从父级传播 a 的结果时,我有一些奇怪的行为正在转换为对象。
例子:
const items = [
{ id: 1, name: "Name1" },
{ id: 2, name: "Name2" }
].map((item) => {
return (
<DropdownMenu_listItem key={item.id} item={item} />
);
});
render() {
return (
<DropdownMenu
label={'Some label'}
onChange={() => {}}
>
{...items}
</DropdownMenu>
);
}
// DropdownMenu.js
render() {
console.log(this.props.children); // {0: {…}, 1: {…}}
return (
// ...
);
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,当我省略.map()和直接传递元素时,它们会this.props.children像预期的那样以数组的形式出现:
render() {
return (
<DropdownMenu
label={'Some label'}
onChange={() => {}} …Run Code Online (Sandbox Code Playgroud) 这是我的阵列:
data = [{"src": 'a'},
{'src': 'b'},
{'src': 'c'}];
Run Code Online (Sandbox Code Playgroud)
但我想改变这样的关键:
data = [{"letter": 'a'},
{'letter': 'b'},
{'letter': 'c'}];
Run Code Online (Sandbox Code Playgroud) 我在写一些Javascript代码时遇到了问题.我正在尝试使用map函数来创建一个新数组.这是我的代码:
[1,2,3].map(m => {'id': m})
Run Code Online (Sandbox Code Playgroud)
我预计结果会是:
[
{'id': 1},
{'id': 2},
{'id': 3}
]
Run Code Online (Sandbox Code Playgroud)
相反,我得到一个错误,上面写着"Uncaught SyntaxError:Unexpected token:"
有人能告诉我我做错了什么吗?
我可以改善我的代码,并用array.map代替for-loop吗?
我搜索了一下,我想我可以这样做,但是我没有找到如何应用的方法。
这是我发现的:
var result = arr.map(person => ({ value: person.id, text: person.name }));
Run Code Online (Sandbox Code Playgroud)
我的代码在这里:
public getFlights(): Observable<RowItem[]> {
return this.http
.get(this.apiHostFlights)
.map((res: any) => {
return <LocationModelItem[]>res.json();
})
.map((items: LocationModelItem[]) => {
var rowItems: RowItem[]=[];
var cachedLenght = items.length;
for (var i = 0; i < cachedLenght; i++) {
rowItems.push(
new RowItem(i, items[i].name, items[i].img, items[i].category)
);
}
return rowItems;
})
.catch((error: any) => {
return Observable.throw(error.statusText);
});
}
Run Code Online (Sandbox Code Playgroud)