ilr*_*ein 26 javascript reactjs
我有一个简单的React组件,如下所示:
import React from 'react';
const ListPage = ({todos}) => (
<div>
<h6>todos</h6>
<ul>
{todos.map(({todo, index}) => (
<li key={index}>{todo}</li>
))}
</ul>
</div>
)
ListPage.propTypes = {
todos: React.PropTypes.array,
};
export default ListPage;
Run Code Online (Sandbox Code Playgroud)
我可以看到文档Array.prototype.map()
显示第二个参数是index,紧邻currentValue.如何改变现有代码来获取第二个参数?
Tim*_*lov 49
你需要这个:
todos.map((key, index) => { ... })
没有参数的对象括号.
({todo, index}) => { ... }
-这句法意味着你想要得到的属性todo
和index
从功能第一个参数.
你可以在这里看到语法:
基本语法
Run Code Online (Sandbox Code Playgroud)(param1, param2, …, paramN) => { statements } (param1, param2, …, paramN) => expression // equivalent to: => { return expression; } // Parentheses are optional when there's only one parameter: (singleParam) => { statements } singleParam => { statements } // A function with no parameters requires parentheses: () => { statements }
高级语法
Run Code Online (Sandbox Code Playgroud)// Parenthesize the body to return an object literal expression: params => ({foo: bar}) // Rest parameters and default parameters are supported (param1, param2, ...rest) => { statements } (param1 = defaultValue1, param2, …, paramN = defaultValueN) => { statements } // Destructuring within the parameter list is also supported var f = ([a, b] = [1, 2], {x: c} = {x: a + b}) => a + b + c; f(); // 6
Pha*_*inh 13
这是一个基于@Timur Bilalov 答案的示例,以便于理解
var materials = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];
materials.map((material,index) => console.log(index +" = " + material + " = " + materials[index]));
Run Code Online (Sandbox Code Playgroud)
输出
"0 = Hydrogen = Hydrogen"
"1 = Helium = Helium"
"2 = Lithium = Lithium"
"3 = Beryllium = Beryllium"
Run Code Online (Sandbox Code Playgroud)
参考
https://reactjs.org/docs/lists-and-keys.html
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
希望有帮助
归档时间: |
|
查看次数: |
45315 次 |
最近记录: |