我正在开发一个 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,但似乎需要更多的组件才能成为我的库的一部分,这使我想要实现的目标进一步复杂化。如果这是唯一的解决方法,那很好,但我想问一下,看看是否有人能想到其他解决方案。
谢谢!