我试图找到React模式的名称,其中组件的children
prop接受函数,允许组件将数据传递给任意子组件。
下面是Formik文档中的一个例子:
<Formik>
{({ handleSubmit, handleChange, handleBlur, values, errors }) => (
<form onSubmit={handleSubmit}>
<input
type="text"
onChange={handleChange}
onBlur={handleBlur}
value={values.name}
name="name"
/>
{errors.name &&
<div>
{errors.name}
</div>}
<button type="submit">Submit</button>
</form>
)}
</Formik>
我试着搜索这种模式的描述,但没有找到任何东西。
这种模式有名字吗?它有什么好的用途吗?这是反模式吗?
1条答案
按热度按时间hyrbngr71#
这个问题的答案直接在Formik的文档中(https://formik.org/docs/api/formik#formik-render-methods-and-props)
是帮助您构建表单的组件。它使用了一种渲染 prop 模式,这种模式在React Motion和React Router等库中非常流行。
您可以在这里找到更多信息:https://www.patterns.dev/posts/render-props-pattern(查找“Children as a function”)