React native和typescript多内联样式

时间:2017-10-30 18:16:03

标签: reactjs typescript react-native styles stylesheet

我试图用react-native和typescript -

来解决这个问题

<View style={[styles.a, styles.b]}> </View>

const styles = StyleSheet.create({
    a: {color: 'red'},
    b:{flex: 1}
})

但是我在typescript中遇到了以下构建错误 -

错误TS2322:输入&#39; {style:(ViewStyle | ImageStyle)[];孩子:元素[]; }&#39;不能分配类型&#39; IntrinsicAttributes&amp; IntrinsicClassAttributes&GT; &安培; Reado ...&#39 ;.   键入&#39; {style:(ViewStyle | ImageStyle)[];孩子:元素[]; }&#39;不能分配给&#39; Readonly&#39;。     财产类型&#39;风格&#39;是不相容的。       键入&#39;(ViewStyle | ImageStyle)[]&#39;不能分配给&#39; ViewStyle |未定义&#39 ;.         键入&#39;(ViewStyle | ImageStyle)[]&#39;没有与&#39; ViewStyle&#39;。

类型相同的属性

任何帮助都将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:0)

这是一种解决方法

<View style={[styles.a, styles.b] as ViewStyle}> </View>

https://github.com/DefinitelyTyped/DefinitelyTyped/pull/17622#issuecomment-312050586

答案 1 :(得分:0)

使用传播运算符可能是执行此操作的最好方法。这应该返回一个ViewStyle对象

<View style={{...styles.a, ...styles.b}}> </View>