reactjs - 进行选择后隐藏或最小化搜索构面组件
问题描述
我们正在构建一个 Reactivesearch 解决方案,并且需要在做出选择后隐藏或最小化一个方面(在本例中为SingleList )。
我已经使用自定义渲染函数尝试了以下方法,我可以在其中检查是否已选择值并应用条件渲染:
render: ({
loading,
error,
data,
handleChange,
value
}) => {
if (value !== "") {
return (
<span>{value}</span>
)
}
else {
return (
<ul>
{
data.map(item => (
<li>
<input
type="radio"
value={item.key}
onChange={handleChange}
/>
<span>
<span>{item.key}</span>
<span>{item.doc_count}</span>
</span>
</li>
))
}
</ul>
)
}
}
虽然这可行,但我想知道是否有一种更清洁的方法,它也避免了对列表进行自定义渲染的需要。基本上,在没有分面选择的情况下使用默认渲染的解决方案。
解决方案
我认为这是我认为可行的最佳方法。以下是我可能完成的其他方式:
- 使用状态变量
创建状态变量并在选择值时更新状态。您可以使用onValueChange
. 每当此状态更改时,您都可以为单列表设置显示无。
handleUpdate = (value) => {
this.setState({
value,
})
}
render(){
const { value } = this.state;
return (
<div>
<SingleList onValueChange={this.handleUpdate} dataField={} style={value ? { display: 'none' } : { display: 'block'}} />
{value ? <span>{value}</span> : null}
</div>
);
}
这是您可以遵循的另一种方式。但是自定义渲染方法是解决这个问题的最好方法。
希望这可以帮助!
推荐阅读
- flutter - Fuchsia - 如何在 Flutter 上设置 Dart pkgs?
- macos - 使用 AppleScript 从 Apple Photos 导出时出错:无法将文件写入目标
- java - 对于看似简单的 Java 代码,我遇到了奇怪的错误。我在这里做错了什么?
- reactjs - react - 重新渲染元素的正确方法
- module - 确保多次调用 ref 的结果相同
- reactjs - Next.js API 路由适用于本地开发但不适用于生产(MailChimp API)
- typescript - Visual Stuio - 错误 TS1005 'Character' 预期
- .net - 视图状态 MAC 验证失败。机器不在网络场或集群上
- javascript - 有没有办法将图像放在屏幕左侧,以 React Native 上的文本为中心?
- python-3.x - Python:遇到换行符时for循环中断