【问题标题】:React Native - Styling buttons with styled-componentsReact Native - 使用样式化组件样式化按钮
【发布时间】:2021-09-06 02:26:50
【问题描述】:

我创建了一个带有样式组件的按钮,但样式不适用。我尝试了样式表,但它也不起作用。

如何设置此按钮的样式?

样式化组件区:

const CalcButton = styled.Button`
  margin-top:10px;
`;

我的功能:

 return (
    <Page>
      <HeaderText>Calculadora de Gorjeta</HeaderText>
      <Input
        placeholder="Quanto deu a conta?"
        keyboardType="numeric"
        value={bill}
        onChangeText={n=>setBill(n)}
      />
      <PctArea>
        <PctItem title="5%"  onPress={()=>setPct(5)}/>
        <PctItem title="10%" onPress={()=>setPct(10)}/>
        <PctItem title="15%" onPress={()=>setPct(15)}/>
        <PctItem title="20%" onPress={()=>setPct(20)}/>
      </PctArea>
      <CalcButton
        title={`Calcular ${pct}%`}
        onPress={calc}
      />
      {tip > 0 &&
        <ResultArea>
          <ResultItemTitle>Valor da Conta</ResultItemTitle>
          <ResultItem>R$ {parseFloat(bill).toFixed(2)}</ResultItem>

          <ResultItemTitle>Valor da Gorjeta</ResultItemTitle>
          <ResultItem>R$ {tip.toFixed(2)} ({pct}%)</ResultItem>

          <ResultItemTitle>Valor Total</ResultItemTitle>
          <ResultItem>R$ {(parseFloat(bill) + tip).toFixed(2)}</ResultItem>
        </ResultArea>
      }
    </Page>

【问题讨论】:

  • reactnative.dev/docs/button 一个基本的按钮组件,应该可以在任何平台上很好地呈现。支持最低级别的自定义。如果此按钮看起来不适合您的应用,您可以使用 TouchableOpacity 构建自己的按钮。
  • 切换到 TouchableOpacity 后,它工作了!谢谢

标签: react-native styled-components


【解决方案1】:

首先,我建议更改为 TouchableOpacity 设置样式的 Button。

TouchableOpacity 样式更像是一个 div 而不是一个按钮,所以当你设计它时你必须考虑一个 div。

标题属性将被替换为 React-Native 本身的 Text 组件

所以样式代码会更像:

const CalcButton = styled.TouchableOpacity`
  `Your style`
`;

而且 JSX 代码会更像:

<CalcButton>
   <Text>What ever you want</Text>

</CalcButton>

【讨论】:

  • 我不知道按钮不是可样式化的,使用 TouchableOpacity 对我有用
  • 他们更多地被限制在风格上,然后是 TouchableOpacity 乐于帮助!!!
  • 现在我知道它不是很时尚,切换到 TouchableOpacity 后,它起作用了!谢谢
猜你喜欢
  • 2020-09-26
  • 2020-10-20
  • 2020-04-17
  • 2020-11-01
  • 2018-02-09
  • 2020-06-12
  • 2021-09-18
  • 1970-01-01
  • 2020-09-22
相关资源
最近更新 更多