reactjs - Reactjs - 使用本地数组时切换开关不起作用
问题描述
我为正在阅读此内容的任何人提供更新....我想我已经找到了问题 - 当您将切换开关设置为选中时,它也设置为 READONLY。所以我现在无法切换拨动开关。
我在 React 中有一个复选框类型的切换组件。
products
是一个用于测试目的的本地设置数组,this.props.products
目前为空。
通过测试,我注意到如果我使用:
selected={(products.indexOf(p) > -1)}
切换停止工作。它们显示正确,但我无法切换它们。它们不会显示为禁用或在 HTML 元素中设置为禁用。
products=['ProdA', 'ProdB', 'ProdC];
customerProducts.forEach(p => {
content(): string[] {
const toggles = [];
if(isEnabled){
toggles.push(
<ToggleComponent
value={p}
selected={(products.indexOf(p) > -1)}
onChange={this.props.onChange}
disabled={false}
/>
);
}
render() {
{this.content()}
}
//TOGGLE COMPONENT
render() {
const {id, title, disabled, name, value, selected} = this.props;
return (
<div>
<fieldset>
<div className="form-structure">
<label className={!this.props.disabled ? 'checkbox-switch-label' : 'checkbox-switch-label checkbox-switch-label-disabled'}>
<input id={id} type="checkbox" checked={selected} className="checkbox-switch" role="Switch" disabled={disabled} name={name} value={value} onChange={this.validate} />
<span/>{title}
</label>
</div>
</fieldset>
</div>
)}
我可以看到我的开发工具中有一个无效的事件侦听器:dispatchDiscreteEvent 切换正在出现,没有明显禁用(html 元素中没有禁用属性),但单击它们不会打开/关闭它们。我是否应该针对状态值设置“禁用”?我已经在其他地方有一个 onChange 函数来获取值。
解决方案
推荐阅读
- php - 在 SQL 插入查询中处理来自用户输入文本的引号
- php - 如何解决 PHP 应用程序 htaccess 上的无效请求(不支持的 SSL 请求)
- mongodb - 在 mongod.cfg 中将 ips 添加到 bind_ip 后无法将 MongoDB 作为服务启动
- deepsecurity - 什么样的 DeepSecurityManager 在 SQL 数据库上的日期
- c++ - ActiveDirectory/C++:如何将 Guid 转换为用户名?
- java - 具有动态列的数据结构
- c - struct 中的动态大小的结构数组
- typescript - 打字稿中的可空字符串:函数将空值作为字符串返回
- vue.js - 如何在 IIS 上托管的 Vue.js 应用程序中显示当前的 Active Directory 用户?
- excel - 为什么倒数第二行显示下标超出范围错误