2016-12-23 4 views
1

fontFamilyをたとえばViewに設定すると反応ネイティブで、内部要素はプロパティを継承しません。それは反応ネイティブのスタイリングで利用可能なカスケードの概念ですか?私はそれをどのように達成するのですか?反応ネイティブのスタイルをカスケードする最も簡単な方法

+0

RNカスケードスタイル:たとえば、 –

+0

@MattAftあなたのコンポーネントがサブコンポーネントのスタイルに使用されるスタイル小道具を受け入れるようにするのが一般的なパターンです。これを使って、スタイルをCSSでのやり方と "カスケード"にすることができます。しかし、私はこれが何を意味するのか正確には分かりません。 – R01010010

+0

私は私の答えを編集してあなたを見せてくれました... – Maxwelll

答えて

0

スタイルをCSSのカスケードを複製するための小道具として渡します。すべての子コンポーネントはこれを達成するためにstyle小道具を継承することができます。それは次のように達成される:ここでは

const styles = StyleSheet.create({ 
    instructions: { 
     fontSize: 16, 
     textAlign: 'center', 
     margin: 15, 
    }, 
    }); 

    render() { 
    return (
     <View style={styles.container}> 
     <Text style={styles.instructions}> 
     <ChildComponent 
      cascadingStyle={styles} 
     /> 
     </View> 
    ); 
    } 

は、私がここでrnplay.org/apps/dErxuQ

+0

申し訳ありませんが、どうですか?それは私にまだ 'style = {this.prop.class} 'を子コンポーネントに設定させるでしょうか?原因は正確に私が避けたいものです – R01010010

+0

なぜそれを避けようとしていますか? CSSで見つかったカスケード効果を実装する最も簡単な方法と、利用し易いスーパー – Maxwelll

+1

htmlのCSSのように、私は子供を避けたいです。私はfontFamilyを親に設定し、子はそれを自動的に継承します。それは簡単です。 – R01010010

-1

を示すために作成した例である例であり、親コンポーネントは、それが子供たちにスタイルだカスケードます。だから、すべてのテキストは、ここに赤いフォントになります。

render() { 
    return (
    <View style={styles.red}> 
     <Text>just red</Text> 
     <Text>just</Text> 
     <Text>red</Text> 
     <Text>red</Text> 
    </View> 
); 
} 
} 

const styles = StyleSheet.create({ 
red: { 
color: 'red', 
}, 
}); 
0

どうやら現時点でコンポーネントが唯一の親が同じタイプであるか、少なくともも継承するプロパティをサポートしている場合にのみ、親の財産を継承することができます。私はメインのViewコンポーネントにfontFamilyを設定していて、Textの子どもたちに継承されていませんでした。

2

スタイル小道の繰り返しを避けるための最も簡単な方法は、コンポーネントにカプセル化することです。 - https://facebook.github.io/react-native/docs/style.htmlあなたはスタイルプロパティを使用している場合、あなたはここでそれについての詳細を読むことができますあなたのためのサブコンポーネントへ

const Item = ({ text }) => <Text style={{ padding: 10 }}>{text}</Text> 

const Consumer =() => 
    <View> 
    <Item text="Item 1" /> 
    <Item text="Item 2" /> 
    <Item text="Item 3" /> 
    </View> 
関連する問題