React Native-- FlatList上的高级示例
问题描述:
我已经使用react创建了一个游戏,现在我正在尝试对我的代码+样式进行必要的更改,以便游戏通过ReactNative在移动设备上运行。以下代码来自关于FlatList的官方指南。React Native-- FlatList上的高级示例
1. class MyList extends React.PureComponent {
2. state = {selected: (new Map(): Map<string, boolean>)};
3. _keyExtractor = (item, index) => item.id;
4. _onPressItem = (id: string) => {
// updater functions are preferred for transactional updates
5. this.setState((state) => {
// copy the map rather than modifying state.
6. const selected = new Map(state.selected);
7. selected.set(id, !selected.get(id)); // toggle
8. return {selected}; }); };
虽然我以前使用过这两种ES6箭头的功能和地图,说实话,我很难理解语法在以下两种情况下使用:
一)第2行:发生了什么(new Map(): Map<string, boolean>)
想返回?
b)第4行:一个箭头函数,它作为参数a ...符号?为什么?
答
2号线,只是初始化与地图类型国家(查看地图位置:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)
新地图()是你如何创建一个地图,以及部分之后的是“流”型规格。它是Facebook自己的Javascript静态类型检查器库(请参阅:https://flow.org/en/docs/types/arrays/)
地图与JS中的对象类似,但它们有不同之处,例如键可以是任何东西,它们是可迭代的,它们可以更大等等。
4号线:正如你可以看到流您可以指定在参数的类型, 所以你基本上是期待“ID”应该是一个字符串
嘿,你是对的,它使用的流动。我觉得很奇怪,他们没有感受到这样说的冲动,我的意思是说流动不是很受欢迎。语法虽然很奇怪,但我觉得很正确,我觉得很困惑。我之前曾使用过Google地图,但这完全不同。 – alexandros84