antd中使用Mentions异步加载遇到的中文和大写英文无法渲染问题?
项目中使用到antd中的Mentions组件,渲染Option的value属性时遇到一个问题,value属性只有为英文小写字符串
时才能渲染成功,否则显示nodata,此问题如何解决?
以下例子为Antd官网的Mentions示例,异步加载数据来源于github
stackblitz地址:antd官网中的Mentions组件异步返回数据实例
实例中,接口返回数据格式如下:
其中,type
与node_id
字段值字符串中包含大写字母。
关键部分代码块:
<Mentions
style={{ width: '100%' }}
loading={loading}
onSearch={this.onSearch}
>
{users.map((item,index) => (
<Option
key={item.login}
value={item.login}>
<span>{item.login}</span>
</Option>
))}
</Mentions>
以上代码块中,当value
属性值设置为item.type
与item.node_id
时,渲染结果中无Option,其它不包含大写字母的字段则可以正常显示。
另外,在本地测试中,当value值所设字段为中文时,也无法渲染Option列表;但是当数据来源users为本地数据,非接口返回数据时都能正常渲染。
该问题如何解决?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
发现问题:
1、给value绑定一个错误的数据:
2、执行@操作,控制台报错
3、根据报错定位到所在行
4、打上断点,发现是验证规则将输入值与Option绑定的value值进行了indexOf操作
解决问题:
根据antd文档,给Mentions绑定自定义过滤规则,跳过过滤