如何将单个参数传递给返回组件的React函数?

因为

我正在使用打字稿反应。我有一个函数返回jsx中的组件:

function TestComponent(str: string) {
    return <span>Hello, your string was {str}</span>
}

假设该函数合理(是吗?),如何在更多jsx代码中调用它?

我试过了:

  <TestComponent str="abcde" />
  <TestComponent str={'abcde'} />
  <TestComponent {'abcde'} />
  <TestComponent {str:'abcde'} />

但是我怀疑我缺少关于函数参数如何传递的更根本的东西(我对React和Typescript都非常陌生)。

谢谢。

数字欺骗

您非常接近,面临的问题是,即使传递单个项目,道具还是一个对象。

interface TestComponentProps {
   str: string;
}
function TestComponent({str}: TestComponentProps) {
    return <span>Hello, your string was {str}</span>
}

然后,您可以使用以下两种语法之一对其进行调用:

<TestComponent str='abcde' />
<TestComponent str={'abcde'} />

str={'abcde'}仅仅意味着React应该评估'abcde'由于它是字符串文字,因此没有任何变化。但是,这有一个重要的警告,字符串文字没有应用任何HTML转义。因此,您必须自己处理。

React文档在解释这里发生的事情方面做得很好。但简而言之,JSX只是语法糖,这些等同于编写:

React.createElement(TestComponent, {str: 'abcde'}, null);

由此,您可能会猜测如果我们添加第二个道具会发生什么。

interface TestComponentProps {
   str: string;
   coolString: string;
}
function TestComponent({str, coolString}: TestComponentProps) {
    return <span>Hello, your string was {str} and your coolString was {coolString}</span>
}

<TestComponent str="abcde" coolString={'fghi'}/>

那么,第三个参数是什么?那是给孩子的。这个答案被偷了给孩子打字让我们来看看它的作用。

interface TestComponentProps {
   str: string;
   children: React.ReactNode
}
function TestComponent({str, children}: TestComponentProps) {
    return (<>
               <span>Hello, your string was {str}</span>
               <div>
                  {children}
               </div>
            </>);
}

<TestComponent str={'<3'}>
   <p>Hey there! 1 + 1 = {1 + 1}</p>
   <p>I'm another child!</p>
</TestComponent>

成为:

function TestComponent({
  str,
  children
}) {
  return React.createElement(React.Fragment, null, React.createElement("span", null, "Hello, your string was ", str), React.createElement("div", null, children));
}


React.createElement(TestComponent, {
  str: '<3'
}, React.createElement("p", null, "Hey there! 1 + 1 = ", 1 + 1), React.createElement("p", null, "I'm another child!"));

注意:该<> </>语法称为Fragment,本质上是一个没有DOM输出的分组函数。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将参数传递给 React 函数组件中的函数

来自分类Dev

如何将函数作为属性传递给React组件?

来自分类Dev

如何将属性传递给 React 函数组件?

来自分类Dev

如何将参数传递给React js中的函数?

来自分类Dev

React如何将参数传递给函数

来自分类Dev

如何将向量元素作为单个参数传递给 R 中的函数

来自分类Dev

如何将参数传递给同一组件中的函数?

来自分类Dev

如何将结构作为参数传递给Java函数或如何从jni返回到Java

来自分类Dev

如何将结构作为参数传递给Java函数或如何从jni返回到Java

来自分类Dev

如何将参数传递给余烬组件

来自分类Dev

如何将参数传递给表组件?

来自分类Dev

如何将参数传递给组件查询(非静态)?

来自分类Dev

如何将参数传递给Vue组件?

来自分类Dev

如何将参数传递给Camel中的myBatis组件?

来自分类Dev

如何将参数正确传递给joomla组件?

来自分类Dev

如何将参数传递给脱机渲染的组件?

来自分类Dev

如何将函数作为参数传递给参数?

来自分类Dev

如何将函数作为参数传递给transform()函数?

来自分类Dev

如何将字段构造函数参数传递给函数?

来自分类Dev

如何将长整型值传递给以整数作为返回类型的函数的参数?

来自分类Dev

如何将askopenfilename()返回值作为参数传递给内置python函数open

来自分类Dev

在Dart Angular中,如何将函数传递给组件

来自分类Dev

如何将组件中的变量传递给函数

来自分类Dev

如何将函数传递给组件以处理拖动事件

来自分类Dev

在Dart Angular中,如何将函数传递给组件

来自分类Dev

如何将React Hook传递给子组件

来自分类Dev

如何将道具传递给子React组件?

来自分类Dev

如何将变量中的值传递给React组件

来自分类Dev

React - 如何将道具传递给孙子组件?

Related 相关文章

  1. 1

    如何将参数传递给 React 函数组件中的函数

  2. 2

    如何将函数作为属性传递给React组件?

  3. 3

    如何将属性传递给 React 函数组件?

  4. 4

    如何将参数传递给React js中的函数?

  5. 5

    React如何将参数传递给函数

  6. 6

    如何将向量元素作为单个参数传递给 R 中的函数

  7. 7

    如何将参数传递给同一组件中的函数?

  8. 8

    如何将结构作为参数传递给Java函数或如何从jni返回到Java

  9. 9

    如何将结构作为参数传递给Java函数或如何从jni返回到Java

  10. 10

    如何将参数传递给余烬组件

  11. 11

    如何将参数传递给表组件?

  12. 12

    如何将参数传递给组件查询(非静态)?

  13. 13

    如何将参数传递给Vue组件?

  14. 14

    如何将参数传递给Camel中的myBatis组件?

  15. 15

    如何将参数正确传递给joomla组件?

  16. 16

    如何将参数传递给脱机渲染的组件?

  17. 17

    如何将函数作为参数传递给参数?

  18. 18

    如何将函数作为参数传递给transform()函数?

  19. 19

    如何将字段构造函数参数传递给函数?

  20. 20

    如何将长整型值传递给以整数作为返回类型的函数的参数?

  21. 21

    如何将askopenfilename()返回值作为参数传递给内置python函数open

  22. 22

    在Dart Angular中,如何将函数传递给组件

  23. 23

    如何将组件中的变量传递给函数

  24. 24

    如何将函数传递给组件以处理拖动事件

  25. 25

    在Dart Angular中,如何将函数传递给组件

  26. 26

    如何将React Hook传递给子组件

  27. 27

    如何将道具传递给子React组件?

  28. 28

    如何将变量中的值传递给React组件

  29. 29

    React - 如何将道具传递给孙子组件?

热门标签

归档