React Native有沒有一種方法可以將我所有的樣式放在單個文件中,以便可以很容易地維護(從我的角度來看),就像在HTML中一樣,我們有一個.css
文件。React Native Native Stylesheet
而且我還有一個模塊,其中有基於當前用戶的不同風格。
React Native有沒有一種方法可以將我所有的樣式放在單個文件中,以便可以很容易地維護(從我的角度來看),就像在HTML中一樣,我們有一個.css
文件。React Native Native Stylesheet
而且我還有一個模塊,其中有基於當前用戶的不同風格。
您可以將此模塊添加到您的管道中,並創建一個Gulp或Webpack任務以將CSS轉換爲JavaScript。
在我的經驗,你最好不要使用網頁相同的CSS和反應本土的,因爲本土作出反應的樣式表實際上並不級聯。
或者,如果你願意改變你的管道一點點,PostCSS,這是一個CSS4到CSS3 transpiler,支持SASS的所有功能外,還可以用來transpile,CSS與JavaScript
你可以簡單地創建一個樣式組件,像這樣用你的風格......
'use strict'
const React = require('react-native');
const { Stylesheet } = React;
module.exports = Stylesheet.create({
...
});
然後在任何視圖需要的款式,只要求它...
styles = require('./Styles');
我同意@克里斯Geirman解決方案。你可以像Chris上面提到的那樣創建stylesSheet並導入到任何視圖。如果你想將外部styleSheet合併到你的單個視圖/組件樣式表中,那麼你可以像這樣使用ES6的新特性Object.assign:
styles = require('./ StyleSheet'); (樣式,StyleSheet.create({... }); );以及其中,
在我的JavaScript定義樣式的整個過程給我帶來了很多困惑,當我第一次移到反應離子從本地,所以我希望這可以幫助...
首先,你要明白, React Native是而不是只是運行在本機WebView中的應用程序。而不是渲染div和跨越你的JavaScript實際上正在生產更高層次,特定於平臺的組件。
因此,我們不能像使用Ionic等其他框架編寫混合應用程序一樣應用相同的樣式規則(通過外部.css樣式表)。好吧,不完全是(見下文)。
上面提到的兩個選項都是有效的解決方案。使用:
注意對後一種選擇:圖書館像postcss-JS不會讓你使用你的CSS,你通常會即樣式基於CSS選擇喜歡的.class和#ID的方式。樣式仍然需要通過道具傳遞給組件。
這對我的作品在最新的陣營:
我有我的樣式表命名CoolTextStyle.js(這是在同一個目錄中我index.ios.js)。而事實證明,你甚至不需要的「樣式表」級
module.exports =
{
borderRadius:5
});
然後在index.ios.js
import React, { Component, PropTypes } from 'react';
import { View, Text, TextInput,TouchableHighlight,StatusBar } from 'react-native';
var cool_text_style = require('./CoolTextStyle');
export default class delme extends Component
{
render()
{
return (
<View>
<StatusBar hidden={true} />
<Text>Login</Text>
<TextInput placeHolder='UserName' style={cool_text_style}></TextInput>
</View>
)
}
}
AppRegistry.registerComponent('delme',() => delme);
是的,你可以
個Style.js
module.exports = {
"centerRowAligment":{
flex: 1,
backgroundColor:"#a22a5f",
flexDirection: 'row',
alignItems:"center"
},
"centerColumnAligment":{
flex: 1,
justifyContent: 'center',
flexDirection: 'column',
alignItems: 'center'
}
}
然後在你的反應只是文件將其導入
import styles from './style'
然後在渲染組件
<View style={styles.centerRowAligment}></View>
這應該工作正常使用它!
更現代/最新的方法是使用「導出默認{...}」而不是「module.exports = {...}」(至少如果您將其與其他組件相比較)。無論如何,這對我有用。 –
根據ECMAScript 6,導出樣式的正確方法就是這樣。
style.js
import React, {StyleSheet} from 'react-native'
export default StyleSheet.create({
container: {
flex: 1,
marginTop: 20
},
welcome: {
textAlign: 'center'
}
});
然後在你的主JS文件,你可以導入這樣。
import styles from './style'
您可以試試我的項目rn-less。
它使用less.js將您的樣式表從jsx/js文件中分離出來。
而我有一個VS Code extension它,您可以輕鬆地在.less文件和.js/.jsx文件之間跳轉。
找不到變量:陣營 –
在哪條線路?我注意到在我原來的回覆中,我忽略了將變量聲明爲「const React」,所以我在上面編輯了它。 –
無法在反應原生0.39.2 – Coder