reactjs - 如何在 React JS + Ant Design 中收集 Switch 值

标签 reactjs react-native react-redux antd

我很抱歉我的基本知识和我的基本英语:)

我的问题是:如何合并开关值[我对表中的每条记录使用开关]

这是 table
https://ibb.co/3TVLBK6

我使用开关(开/关)创建了一个包含一个单元格/字段的表格
我想在它们打开时获得开关值

这是代码

const columnsTableDepartmentModal = [
{
  title: 'No',
  dataIndex: 'no',
  key: 'no',
}, 
{
  title: 'Department',
  dataIndex: 'department',
  key: 'department',
}, 
{
  title: 'Select',
  dataIndex: 'select_department',
  key: 'select_department',
  render: (e, record) => (
    <Switch 
      defaultChecked={e} 
      onChange={
        (value) => onChangeSwitch(value,record)
      } 

      checkedChildren="Yes"
      unCheckedChildren="No"
      />
  ),
}];

这就是我现在尝试的
function onChangeSwitch(isSelect,record){
  console.log(e); // True / False
  console.log(record); // True / False

  if(isSelect){
    // push data to array
  }

  if(!isSelect){
    // pop data from array

  }
}

这就是我展示表格的方式
<Modal
        title={modalDepartmentTitle}
        visible={visibleDepartment}
        width={800}
        onOk={handleOkDepartment}
        onCancel={handleCancelDepartment}  
        footer={[
          <Button key="submit" type="primary" onClick={handleOkDepartment}>OK</Button>,
          <Button key="button" type="danger" onClick={handleDeleteDepartment}>DELETE</Button>,
          <Button key="back" onClick={handleCancelDepartment}>CANCEL</Button>,
        ]}
      >
        <Table 
          columns={columnsTableDepartmentModal}  
          dataSource={stateDepartment.data} 
          pagination={false} 
          scroll={{y: 325}}
          />
    </Modal>

预期结果:1,3,4

最佳答案

import React, { Component } from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
import './style.css';
import Switch from 'react-switch'; 

class App extends Component {
  constructor() {
    super();
    this.state = {
      checkedPos: [],
      info: [],
    };
  }

  componentWillMount()
  {
     let tmp = []
     let pos = []
     for (var i = 1; i < 6; i++) {
       tmp.push("Info " + i)
       pos.push(false);
     }
     this.setState({
       info: tmp,
       checkedPos: pos
     })
   }

  handleChange(index, info)
  {
    if (!this.state.checkedPos[index])
    {
      this.setState(prev => ({
         checkedPos: prev.checkedPos.map((val, i) => !val && i === index ? true : val),
      }))
    }
    else if (this.state.checkedPos[index])
    {
      this.setState( prev => ({
         checkedPos: prev.checkedPos.map((val, i) => val && i === index ? false : val),
      }))
    }
  }

  render() {
    const listItems = this.state.info.map((item, index) =>
      <div>
        {item}
        <Switch checked={this.state.checkedPos[index]}
          onChange={ () => this.handleChange(index, this.state.info[index])}/>
        {"  Value is " + this.state.checkedPos[index]}
      </div>
    );

    return (
      <div>
        {listItems}
      </div>
    );
  }
}

render(<App />, document.getElementById('root'));

Demo here

关于reactjs - 如何在 React JS + Ant Design 中收集 Switch 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56054315/

相关文章:

javascript - 如何在 React OpenSeadragon 中添加多个图 block 图像

javascript - 带有异步和等待 react native 的箭头功能

objective-c - Swift 模块 React Native 上的奇怪问题 'Cannot find type ' RCTResponseSenderBlock' in scope'

Redux + Normalizr : Adding and deleting normalized entities in Redux state

javascript - 是否有标准方法来路由 setState redux 操作?

reactjs - 我已经构建了一个具有上下文和钩子(Hook)的全局状态 redux 类似模式。有没有办法组合 reducer ?

javascript - 使用 FirebaseUI 创建通用登录应用程序

javascript - 自定义 React Hook 是否会导致依赖组件的重新渲染?

javascript - 数组的元素和长度的值未定义(从 Firebase 获取时)

reactjs - 如何在授权 header 中将带有 fetch 和 cors 的 JWT token 发送到 Express 服务器?