Термин "render props" описывает паттерн, а не требование к конкретному имени пропса. Любой пропс, который является функцией и используется для определения того, что рендерит компонент, считается render prop, независимо от его имени.
У тебя есть гибкость в том, как реализовать этот паттерн:
renderchildren как функциюВместо того чтобы явно называть пропс:
<Mouse children={mouse => (
<p>Позиция мыши {mouse.x}, {mouse.y}</p>
)} />
Ты можешь передать функцию напрямую как children:
<Mouse>
{mouse => (
<p>Позиция мыши {mouse.x}, {mouse.y}</p>
)}
</Mouse>
Когда используешь children как функцию, явно объяви это в propTypes, чтобы гарантировать, что пропс принимает функцию:
Mouse.propTypes = {
children: PropTypes.func.isRequired
};
Паттерн render props — это про то, как ты передаёшь функцию компоненту, а не про конкретное имя, которое ты ей даёшь. Главное — что функция используется для управления логикой рендеринга компонента.
Паттерн render props требует, чтобы функция-пропс обязательно называлась 'render' для того, чтобы считаться корректной реализацией паттерна.
Новый — ещё не проверен сообществом
Вы