我正在开发一个 React 组件库,它允许通过将对象数组和<input/>
as 属性传递给<SearchFilter/>
组件来进行客户端数据过滤。我想将过滤后的结果返回到一个单独 <SearchResults/>
的组件,该组件可以在树的其他地方呈现(即结果组件不必是输入组件的子组件)。
我已经弄清楚了过滤,但我不确定在 React 中获取过滤数据到<SearchResults/>
组件的最佳途径。
这就是我想结束的...
<SearchFilter
data={data}
input={<input type="text" value={value} onChange={this.handleChange}/>}
/>
然后,使用 Render Props 返回数据并映射到返回 JSX,就会有结果组件。像这样的东西...
<SearchResults
render={data => (
data.map(el => (
<div>
<span>{data.someProperty}</span>
</div>
)
)}
/>
这就是我想要实现的目标,因为我希望允许<SearchFilter/>
在树中的一个地方渲染组件,并允许在其他地方<SearchResults/>
渲染组件,这样树的组成方式以及因此如何视图被渲染。
我已经查看了 Context API,但似乎需要更多的组件才能成为我的库的一部分,这使我想要实现的目标更加复杂。如果这是解决它的唯一方法,那很好,但我想问一下,看看是否有人能想到另一种解决方案。
谢谢!