如何在react中重用react-native StyleSheet(styles)?

时间:2018-09-30 12:48:12

标签: css reactjs react-native

// react-native example
import { StyleSheet, View } from 'react-native';

const styles = {
  container: {
    borderRadius: 4,
    borderWidth: 0.5,
    borderColor: '#d6d7da',
  }
}

const stylesRN = StyleSheet.create(styles);

<View style={stylesRN.container}></View>

什么是最好的重用方法

// inner styles 
{
    borderRadius: 4,
    borderWidth: 0.5,
    borderColor: '#d6d7da',
}

无论是本机还是反应?

我想用伪代码(或React中的另一种重用方式)实现的目标:

<div style={magicAdapter(styles.container)}>Hello World!</div>

问题:如果没有magicAdapter,就不可能在react as is中重用所有react-native内联样式。

3 个答案:

答案 0 :(得分:2)

您可以做的是将所有样式存储在某个文件<?php if(isset($_POST["input"])) echo "You typed ".$_POST["input"]; ?> <form method="POST"> <input type="text" name="input"> <input type="submit"> </form> 中的对象中,将其导出,然后为React Native使用StyleSheets javascript类为div容器创建样式

e.g. const containerStyles = { borderRadius: 2 }

然后对于React,您可以对同一个对象进行内联样式化,但是请注意,并非StyleSheets支持的所有样式都可以用于内联样式化,因此,如果您想做等同的事情,可以使用类似{{1} }以在JS中动态加载CSS

https://github.com/emotion-js/emotion 这是一个例子

import {containerStyles} from '../someFile.js'

const styles = StyleSheets.create({
  container: containerStyles
})

我希望这对您有帮助

答案 1 :(得分:0)

您可以将新组件的样式与容器的样式连接起来,如下所示

const styles = StyleSheet.create({
  container: {
    borderRadius: 4,
    borderWidth: 0.5,
    borderColor: '#d6d7da',
  },
  newComponent:{
     // New component style
  }
});

<View style={[styles.container, styles.newComponent]}> 
</View>

答案 2 :(得分:0)

let dice = Math.floor(Math.random() * 5) + 2;

console.log(dice);