代码之家  ›  专栏  ›  技术社区  ›  shubham saurabh

我想将列表中的选中值存储在数组中,但结果不正确

  •  -1
  • shubham saurabh  · 技术社区  · 7 年前

    onClickHandler = (e, DeptId, DeptName) => {
      let selectedDepartment = [];
      selectedDepartment.push(DeptName);
      console.log("selectedDepartment----", selectedDepartment);
      this.setState({
        isChecked: !this.state.isChecked
      });
    };
    
    departmentData() {
    let departmentList = this.props.departmentData.departments || [];
    return departmentList.map((departmentName, index) => {
      return (
        <li className="row" key={index}>
          <div className="col-12 dep-list">
            <div className="row">
              <div className="col-md-9">
                <div
                  className="user-name"
                  title={departmentName.departmentName}
                >
                  {departmentName.departmentName}
                </div>
              </div>
              <div className="col-md-3 mt-rd-btn">
                 <RadioButton
                    // checked={this.state.isChecked}
                    id={departmentName.dObjectId}
                    type="radio"
                    name={departmentName.departmentName}
                    value={departmentName.departmentName}
                    onClick={e =>
                      this.onClickHandler(
                        e,
                        departmentName.dObjectId,
                        departmentName.departmentName
                      )
                    }
                  />
                </div>
              </div>
            </div>
         </li>
        );
      });
    }
    

    先谢谢你。帮我拿这个

    2 回复  |  直到 7 年前
        1
  •  0
  •   Aseem Upadhyay    7 年前

    我没有检查全部代码,但是你的主要功能 onClickHandler

    onClickHandler(..., DeptName) {
         let currentList = this.departmentList;
         currentList.push(DeptName);
         this.departmentList = currentList;
    }
    

    那应该能解决你的问题

        2
  •  0
  •   shubham saurabh    7 年前
     constructor(props) {
        super(props);
        this.state = {
          selectedDepartment: []
        };
      }
    
      onClickHandler = (e, DeptId, DeptName) => {
        let x = DeptName;
        let selectedDepartment =
          JSON.parse(JSON.stringify(this.state.selectedDepartment)) || [];
        if (selectedDepartment.indexOf(DeptName) === -1) {
          selectedDepartment.push(x);
        } else if (selectedDepartment.indexOf(DeptName) !== -1) {
          selectedDepartment.splice(selectedDepartment.indexOf(DeptName), 1);
        }
        console.log("data here in array----", selectedDepartment);
        this.setState({
          selectedDepartment
        });
      };