2016-11-28 6 views
0

こんにちは私は異なる色の3つのボタンをスタイルしたいと思いますが、これらのボタンが無効になっていると、最初に追加したカスタムスタイルはデフォルトのスタイルdisabledTextColorを上書きします。ユーザーはボタンが無効であることを見ることができます。無効な状態のスタイルを設定するにはどうすればいいですか?また、labelStyleやdisabledTextColorのスタイルを変更する正しい方法は?ここではボタンが常に真material-uiのボタンをスタイルする方法

+0

こんにちは!便利な回答を提供するために、より多くの情報が必要になります。マテリアルの「無効化」ボタンのスタイリングがカスタムスタイルをオーバーライドしていると言っているようですが、適用しようとしているスタイルやエフェクトがどのようなものか、それをどのように達成しているのかは不明です。あなたがしようとしていることを明確にし、あなたの_relevant_コードのサンプルを含めることができると思いますか?ありがとうリド!お役に立てれば。 –

+0

こんにちは@JacobFordはあなたの答えに感謝します。私はちょうど詳細を追加しました、あなたが私を助けてくれることを願っています。 –

答えて

3

で無効状態はあなたがボタンが無効になっている場合、条件付きlabelStyleをフェードFlatButton周りの小さなラッパーコンポーネントを作成することができるにもかかわらず、レッドのまま、この場合の例

const style = { 
     labelStyle: { 
     color: 'red; 
     } 
    } 

<FlatButton 
     label='Mit Linkedin anmelden' 
     labelPosition='after' 
     icon={<LinkedinIcon />} 
     onClick={() => Meteor.loginWithLinkedin()} 
     disabled={true} 
     labelStyle={style.labelStyle} 
     /> 
    </div> 
    <div className='mdl-cell mdl-cell--12-col'> 
     <FlatButton 
      label='Mit Google anmelden' 
      labelPosition='after' 
      icon={<GoogleIcon />} 
      onClick={() => Meteor.loginWithGoogle()} 
      disabled={true} 
      labelStyle={style.labelStyle} 
     /> 
    </div> 

です。そこ

const CustomFlatButton = (props) => (
    <FlatButton 
    {...props} 
    labelStyle={{ ...props.labelStyle, opacity: props.disabled ? 0.3 : 1 }} 
    /> 
); 

...

<CustomFlatButton label="Disabled Red" style={{ color: 'red' }} disabled /> 

https://jsfiddle.net/6rads3tt/2/

+0

こんにちは@jeff良いアイデアのようにあなたの答えをありがとうが、私はそれをよりスケーラブルにすることができますか?これは、textColorとdisabledTextColorの3つの異なるスタイルを持つ3つの異なるボタンのためです。それらのそれぞれのためのカスタムテーマを作成する必要があり、それらの3つすべてがmuithemeコンポーネントにラップする必要がありますか? –

+0

こんにちは@LidoFernandez、私はより良い解決策で私の答えを更新しました。あなたはそれが有用であることを願っています! –

+0

それは天才に見えます!ありがとう@ジェフマクラウド –

関連する問題