删除按钮上的文本字段单击不起作用reactjs
remove the textfield on button click not working reactjs
我有多个带有关闭按钮的日期文本字段,点击关闭(x)应该删除文本字段,
但不工作,(删除点击关闭按钮的文本字段)
这是我的代码链接 https://codesandbox.io/s/strange-http-zhj4f
尝试这样的事情。确保将日期传递给 X 按钮中的方法。像这样
onClick={() => 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;
最好用这种方式 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>
);
})}
我有多个带有关闭按钮的日期文本字段,点击关闭(x)应该删除文本字段, 但不工作,(删除点击关闭按钮的文本字段) 这是我的代码链接 https://codesandbox.io/s/strange-http-zhj4f
尝试这样的事情。确保将日期传递给 X 按钮中的方法。像这样
onClick={() => 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;
最好用这种方式 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>
);
})}