...样式中的语法

时间:2017-06-25 08:38:44

标签: reactjs react-native

样式中的...语法是什么?例如...StyleSheet.absoluteFillObject

const styles = StyleSheet.create({
  container: {
    marginLeft: 10,
    marginBottom: 10,
    height: (height - 20 - 20) / rows - 10,
    width: (width - 10) / cols - 10,
  },
  imageContainer: {
    flex: 1,                          // take up all available space
  },
  image: {
    borderRadius: 10,                 // rounded corners
    ...StyleSheet.absoluteFillObject, // fill up all space in a container
  },
  title: {
    ...defaultStyles.text,
    fontSize: 14,
    marginTop: 4,
  },
  genre: {
    ...defaultStyles.text,
    color: '#BBBBBB',
    fontSize: 12,
    lineHeight: 14,
  },
});

1 个答案:

答案 0 :(得分:3)

(这个答案基于假设你在询问JavaScript中的spread(...)语法)

  

传播语法允许在某些地方展开表达式   其中多个参数(用于函数调用)或多个元素   (对于数组文字)或多个变量(用于解构   任务)是预期的。

语法

对于函数调用:

myFunction(...iterableObj);

对于数组文字:

[...iterableObj, 4, 5, 6];

对象文字(ECMAScript中的新内容;第3阶段草稿): let objClone = { ...obj };

传播对象文字

ECMAScript提案的Rest/ Spread属性(阶段3)将扩展属性添加到对象文字。它将自己的可枚举属性从提供的对象复制到新对象上。

现在可以使用比Object.assign()更短的语法来进行浅层克隆(不包括原型)或合并对象。

例如: -

var obj1 = { foo: 'bar', x: 42 };

 var obj2 = { foo: 'baz', y: 13 };

 var clonedObj = { ...obj1 };

 // Object { foo: "bar", x: 42 }

var mergedObj = { ...obj1, ...obj2 };

 // Object { foo: "baz", x: 42, y: 13 }