【问题标题】:Typescript + React - Passing/Exploding Props in JSX to pass to children?Typescript + React - 在 JSX 中传递/爆炸道具以传递给孩子?
【发布时间】:2021-08-26 05:08:41
【问题描述】:

经过一番痛苦,我意识到我实际上并不了解它是如何工作的,也不知道它到底叫什么

Foreward:typescript/javascript 和 react 的新手

我正在使用 Formik 并尝试创建一些自定义函数以使我的团队更轻松,我发现使用 Formik 我可以执行以下操作(教程很棒):

<Formik
      {...props}
      validationSchema={validationSchema}
      onSubmit={async (values, helpers) => {
        await props.onSubmit(values, helpers);
        setCompleted(true);
      }}
    >
      {({ isSubmitting, setFieldValue, touched, errors }) => (
      ...

在此我现在可以使用 Formik 中的 touch、errors 等(据我了解?)

如何使用我自己的自定义函数/组件来做到这一点?

// In MyComponent
const myCoolConst = "George"

<MyComponent name="Hello" > {(myCoolConst)} => {
  <text>{myCoolConst}</text>
}
</>

也是我的奖励,但我正在尝试做的事情是否被视为反模式或其他什么?

【问题讨论】:

标签: javascript reactjs typescript formik


【解决方案1】:

这是render props 范式,这里有一个简单的例子来说明如何去做,

const MyComponent = ({children}) => {
  return (
    <>
      <div>Content from MyComponent</div>
      <>{children(1, 2)}</>
    </>
  );
};

export default function App() {
  return (
    <MyComponent>
      {(a, b) => {
        return <>
        <p>{a}</p>
        <p>{b}</p>
        </>
      }}
    </MyComponent>
  );
}

这里的children 道具是一种特殊的道具,您可以自动使用它来通过回调呈现内容。

【讨论】:

  • 感谢您解释这一点并向我展示实际概念,+1。
猜你喜欢
  • 2020-08-08
  • 2016-03-19
  • 1970-01-01
  • 2021-04-01
  • 2018-07-29
  • 2022-01-12
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多