Javascript 第一次设置状态完成后如何设置状态?
我想在mapProps完成后更新编辑状态。我的编辑状态在构造函数中设置为true,但我想在mapProps之后将其更改为false。我的控制台读取到,在满足我的条件后,edit仍然设置为true。为什么这不起作用?提前谢谢你Javascript 第一次设置状态完成后如何设置状态?,javascript,reactjs,Javascript,Reactjs,我想在mapProps完成后更新编辑状态。我的编辑状态在构造函数中设置为true,但我想在mapProps之后将其更改为false。我的控制台读取到,在满足我的条件后,edit仍然设置为true。为什么这不起作用?提前谢谢你 componentDidMount() { this.mapProps(); } mapProps = () => { this.setState( { items: this.props.items,
componentDidMount() {
this.mapProps();
}
mapProps = () => {
this.setState(
{
items: this.props.items,
name: this.props.name,
unit: this.props.unit,
price: this.props.price,
avail: this.props.avail
},
() => {
this.editMap();
}
);
};
editMap = () => {
if (!this.state.name === "") {
this.setState({
edit: false
});
}
};
render() {
const { name, unit, price, avail } = this.state;
return (
<>
{!this.state.delete ? (
<div className="edit-bar">
<div className="left">
<div className="fields">
<h1>Product</h1>
{!this.state.edit ? (
<h2>{this.state.name}</h2>
) : (
<input
type="text"
name="name"
value={name}
onChange={this.onChange}
></input>
)})
componentDidMount(){
这是mapProps();
}
mapProps=()=>{
这是我的国家(
{
项目:this.props.items,
名称:this.props.name,
单位:这个。道具。单位,
价格:这个。道具。价格,
avail:this.props.avail
},
() => {
这个.editMap();
}
);
};
editMap=()=>{
如果(!this.state.name==“”){
这是我的国家({
编辑:false
});
}
};
render(){
const{name,unit,price,avail}=this.state;
返回(
{!this.state.delete(
产品
{!this.state.edit(
{this.state.name}
) : (
)})
如果editMap()
中的if语句错误。它将始终为false,因此将永远不会调用下一个setState,该语句将编辑设置为false
在if语句中,!this.state.name
将返回一个布尔值,您正试图根据空字符串检查该值。因此,它将始终为false
将其更改为if(this.state.name!==“”)
或更好的if(!this.state.name)