Reactjs:如何在组件内创建带有 args 的函数

Posted

技术标签:

【中文标题】Reactjs:如何在组件内创建带有 args 的函数【英文标题】:Reactjs: How to create a function with args inside a component 【发布时间】:2022-01-08 15:09:23 【问题描述】:

在 React 中,有时组件内部有一个函数,用于当项目为 activepressed 时,如下面的 Pressable。在函数的 args 中的对象内部可以使用 pressed 变量时,如何重新创建这种模式?

<Pressable onPress= () => null >
   ( pressed ) => (
    <Text>pressed ? "Pressed!" : "Press Me"</Text>
  )
</Pressable>

我的尝试失败了

import * as React from 'react';
import  Text, View, StyleSheet  from 'react-native';

const Component = ( children ) => 
  // Not sure how active should be passed down to children
  // via a useContext maybe? Is that the only way?
  const [active, setActive] = React.useState(true);

  return <View>children</View>;
;

export default function App() 
  return (
    <View>
      <Component>
        (active) => (
          <Text>
            active ? "Active" : "Not active"
          </Text>
        )
      </Component>
    </View>
  );

【问题讨论】:

【参考方案1】:

将命名函数表达式作为子组件传递给组件

import  StyleSheet, View, Text  from 'react-native'

const Component = ( children ) => 

  const [active, setActive] = React.useState(true);

  return <View>children(active)</View> ;
;

export default function App() 
  const demo = (active) => (
    <Text>
      active ? "Active" : "Not active"
    </Text>
  );
  return (
    <View>
      <Component>
        demo
      </Component>
    </View>
  );

【讨论】:

以上是关于Reactjs:如何在组件内创建带有 args 的函数的主要内容,如果未能解决你的问题,请参考以下文章

在 reactjs 中悬停时显示组件 [关闭]

如何在头组件中使用效果(ReactJS/Next.js)

如何使用 reactjs 和 redux 处理导航

ReactJs - 如何在一个组件中使用多个子组件

ReactJs:如何创建一个包装器组件,该组件在单击时会执行某些代码并呈现子组件?

如何在 Reactjs 的组件状态下使用 OOP?