javascript - <Component render={({ state }) => {}}/> 在 React 中做什么?

标签 javascript reactjs fullpage.js

我目前正在学习ReactJS,我想使用fullPageJS。它工作正常,但有一些语法我不太明白。

组件:

   function home() {
    return (
        <ReactFullpage
            render={({ state, fullpageApi }) => {
            return (
                <ReactFullpage.Wrapper>
                    <div className="section">
                        <h1>Slide 1</h1>
                    </div>
                    <div className="section">
                        <h1>Slide 2</h1>
                    </div>
                </ReactFullpage.Wrapper>
            );
            }}
        />
    )
}
export default home;

现在我的问题是,render={({ state, fullpageApi }) => { return(); 做什么? }}/> 做什么?我可以看到它是一个属性,但我不太明白它的用途是什么。

最佳答案

这是一种称为 Render Prop 的模式。它是一种通过代码与 ReactFullpage 中的代码之间的双向通信来决定渲染内容的方法。

您将一个函数作为 props 之一传递。这本身就是一件相当常见的事情,例如将函数传递给 onClick 属性。这里的特别之处在于该函数的使用方式。

当 ReactFullpage 渲染时,它会调用你的函数。它基本上是在说“嘿,这里有一些数据(状态和 fullPageApi)。您希望我根据这些数据呈现什么?”然后,您的函数计算并返回您希望其呈现的元素。然后 ReactFullpage 将在其最终输出中使用这些元素。

有关渲染 Prop 的更多信息,请参阅 react's documentation on the pattern

关于javascript - <Component render={({ state }) => {}}/> 在 React 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65395555/

相关文章:

javascript - 受到束缚的 Promise 响应

javascript - 修复了 fullpage.js 部分内的 div

javascript - 如何在 jquery 上并排区分 mouseout/leave 事件?

javascript - React.js 理解 setState

javascript - 在 Bootstrap 中为标题设置全宽背景图像

reactjs - 使用 ref 和 useEffect 监听 Formik 字段的变化

javascript - FullPage.JS 一页滚动不适用于手机

javascript - FullPagescrollOverflow 部分使用 iScrollscrollTo() 错误进行滚动

javascript - Nodemon 不重新加载页面

javascript - Xbox One Controller 输入到 UWP 应用程序