React JS-为Ant设计开关添加唯一键 [英] React js - Add unique key for ant design switch

查看:103
本文介绍了React JS-为Ant设计开关添加唯一键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在如何向循环下的交换机添加唯一键方面遇到问题.

I am having a problem on how to add a unique key to the switch that is under my loop.

实际输出:每当我单击一个开关时,所有开关也都在切换.

Actual Output: Whenever I click one switch, all switches are toggling too.

预期结果:一个开关必须根据我选择的开关而不是其他开关进行切换

Expected Result: One switch must toggle depends on what switch I selected and not the other switches

这是我的代码:

  let keys;
  let output = [];

  for (let i = 0; i < info.length; i++) {
    keys = {
      ...info[i],
      key: i,
      actionIndex: (
        <div>
            <Switch 
            checked={isSwitchToggle ? true: false}
            onClick={()=> {
              handleSwitch(
                info[i],
                handleChangeSwitch,
              )
            }} />
        </div>
      ),
    };

    output.push(keys);
  }
  return output;

这是切换 isSwitchToggle 状态

handleChangeSwitch = () => {
        const { isSwitchToggle } = this.state
        this.setState({ 
            isSwitchToggle: !isSwitchToggle, 
    })
}

顺便说一句,我使用Ant设计开关.感谢您的帮助

Im using Ant design switch by the way. Thanks for the help

推荐答案

以下是处理单个开关的方法.请根据您的要求更改演示代码.

Here is how to handle an individual switch. Do change the demo code as per your demand.

应用

class App extends Component {
  state = {};

  render() {
    let info = [
      { id: 1, name: "a", isSwitchToggle: true },
      { id: 2, name: "b", isSwitchToggle: false },
      { id: 3, name: "c", isSwitchToggle: true }
    ];
    let output = [];

    for (let i = 0; i < info.length; i++) {
      output.push(<SingleSW data={info[i]} />);
    }

    let switches =
      output.length !== 0 && output.map((row, i) => <div key={i}>{row}</div>);

    return <div>{switches}</div>;
  }
}

SingleSW (单个开关

这篇关于React JS-为Ant设计开关添加唯一键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆