【问题标题】:remove the textfield on button click not working reactjs [closed]删除按钮单击上的文本字段不起作用 reactjs [关闭]
【发布时间】:2020-06-02 08:13:30
【问题描述】:

我有多个带有关闭按钮的日期文本字段,点击关闭(x)应该删除文本字段, 但不工作,(点击关闭按钮删除文本字段) 这是我的代码链接https://codesandbox.io/s/strange-http-zhj4f

【问题讨论】:

标签: javascript reactjs redux react-redux arrayobject


【解决方案1】:

最好用这种方式编码你的map()

{closedatearr.map(datevalue => {
          return (
            <div className="text-content" key={datevalue.toString()}>
              <input type="text" value={datevalue} className="inputfield" readOnly />
              <button
                type="button"
                onClick={() => this.textareaHandler(datevalue)}
              >
                X
              </button>
            </div>
          );
        })}

【讨论】:

    【解决方案2】:

    试试这样的。确保将日期传递给 X 按钮中的方法。像这样

    onClick={() =&gt; this.textareaHandler(datevalue)}

    这是一个工作代码

    import React from "react";
    import DatePicker from "react-date-picker";
    
    class AddDate extends React.PureComponent {
      constructor(props) {
        super(props);
        this.state = {
          closedatearr: ["12-02-2020", "19-02-2020"]
        };
      }
    
      buttonHanlder = value => {
        var dateformat = [
          ("0" + value.getDate()).slice(-2) +
            "-" +
            ("0" + (value.getMonth() + 1)).slice(-2) +
            "-" +
            value.getFullYear()
        ];
        this.setState(prevState => ({
          closedatearr: [...prevState.closedatearr, ...dateformat]
        }));
      };
    
      textareaHandler = val => {
        const { closedatearr } = this.state;
        let removeval = closedatearr.filter(item => item !== val);
        this.setState({
          closedatearr: removeval
        });
      };
    
      render() {
        const { closedatearr } = this.state;
        return (
          <React.Fragment>
            <div className="row">
              <div className="form-group col-lg-12 col-sm-12">
                <label htmlFor="sortorder" className="floatLeft label2">
                  Select Date
                </label>
              </div>
            </div>
            <div className="row">
              <div className="form-group col-lg-12 col-sm-12">
                <DatePicker
                  locale="en-GB"
                  onChange={value => {
                    this.setState({ closedate: value }, () => {
                      this.buttonHanlder(value);
                    });
                  }}
                  value={new Date()}
                />
              </div>
            </div>
            <div className="row">
              <div className="form-group col-lg-12 col-sm-12">
                {closedatearr.map((datevalue, i) => {
                  return (
                    <div className="text-content" key={i}>
                      <input type="text" value={datevalue} className="inputfield" />
                      <button
                        type="button"
                        onClick={() => this.textareaHandler(datevalue)}
                      >
                        X
                      </button>
                    </div>
                  );
                })}
              </div>
            </div>
            <div style={{ height: "30px" }} />
          </React.Fragment>
        );
      }
    }
    
    export default AddDate;
    

    【讨论】:

      猜你喜欢
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2017-08-30
      • 2021-03-27
      • 2014-11-15
      • 1970-01-01
      • 2015-01-29
      • 2019-03-14
      相关资源
      最近更新 更多