Возможно, вы перепутали ramda pipe
/ compose
и пересоздали и аргументы, которые они принимают. Ваша цепочка состоит из набора компонентов и функций более высокого порядка, работающих на подпорках. Лучше всего хранить данные в mapProps
/ withProps
и т. Д.
Возможно, вы сможете достичь чего-то похожего на то, что вам нужно, как это:
import { map, evolve, propSatisfies, isEmpty } from 'ramda'
import { compose, branch, renderComponent, mapProps, renameProp } from 'recompose'
const Repo = (repo) => <div>Repo {repo}</div>
const Loader = () => <div>Loader</div>
const RepoGridBase = props => <div>{props.children}</div>
const ReposGrid = compose(
branch(
propSatisfies(isEmpty, 'repos'),
renderComponent(Loader),
),
mapProps(evolve({
repos: map(Repo)
})),
renameProp('repos', 'children')
)(RepoGridBase)
function App() {
return (
<div className="App">
<ReposGrid repos={[]} />
<ReposGrid repos={['one', 'two']} />
</div>
);
}
(это выдаст ключевые предупреждения, вам, вероятно, лучше будет явно выполнить map
внутри компонента)
коды и ссылки на ящики