react native:创建组件以最小化代码行

Posted

技术标签:

【中文标题】react native:创建组件以最小化代码行【英文标题】:react native : Create component to minimize lines of code 【发布时间】:2021-11-08 02:18:55 【问题描述】:

在我的示例中,我尝试从以下代码创建一个名为 nextButton 的组件,然后我可以使用它。 我做的问题出在哪里?


export const MainScreen = () => 

const nextButton =() => 
    return (
  <TouchableOpacity
          style= alignSelf: 'center' 
          onPress=() => verifyNavigate()
        >
          <LinearGradient
            colors=[Colors.Grayish_blue,
              Colors.Oval_blue,
              Colors.Dark_blue]
            style=styles.linearGradientStyle
          >
            <Text 
            style=styles.nextText>next</Text>
          </LinearGradient>
        </TouchableOpacity>
         )
    


return (
<nextButton />

  )

【问题讨论】:

您能否详细说明您的问题,提供更多详细信息以及错误日志(如果有)? 我编辑我的问题。 【参考方案1】:

您的nextButton 版本只是一个函数,而不是一个组件。 您不能在一个组件中创建一个组件,但您可以在一个文件中创建多个组件。

您可以在 MainScreen 返回中将其作为函数调用

nextButton()

如果你想将它作为一个组件使用,你需要将它移到 MainScreen 组件主体之外

export const NextButton = () => 
  return (
    <TouchableOpacity
      style= alignSelf: "center" 
      onPress=() => verifyNavigate()
    >
      <LinearGradient
        colors=[Colors.Grayish_blue, Colors.Oval_blue, Colors.Dark_blue]
        style=styles.linearGradientStyle
      >
        <Text style=styles.nextText>next</Text>
      </LinearGradient>
    </TouchableOpacity>
  );
;

export const MainScreen = () => 
  return <NextButton />
;

请记住,最佳做法是使用以大写字母开头的组件名称,因此将 nextButton 重命名为 NextButton

如果这对你有用,请为答案投票

【讨论】:

你是什么意思“将它移到主屏幕之外”。请用代码告诉我你是怎么做的,我所做的有什么不同? 我已经在答案中添加了sn-p 这可能是因为verifyNavigate()函数,你能发布错误日志试试评论onPress=() => verifyNavigate()这一行 不能在 MainScreen 内创建 nextButton 组件的组件内创建组件,因此它被视为普通函数而不是组件。 您可以在我提供的单个文件示例 sn-p 中包含多个组件。您的 nextButton 版本位于 MainScreen 组件主体内。

以上是关于react native:创建组件以最小化代码行的主要内容,如果未能解决你的问题,请参考以下文章

如何创建动态的 React Native 组件

React Native Swipeable 最小激活距离

React-Native:如何创建多个 Native UI 组件的实例?

React Native:创建组件错误

使用自定义输入组件时的 React-Native 不变违规

如何为 React Native 嵌套组件创建 Typescript 定义