Javascript 第一次设置状态完成后如何设置状态?

Javascript 第一次设置状态完成后如何设置状态?,javascript,reactjs,Javascript,Reactjs,我想在mapProps完成后更新编辑状态。我的编辑状态在构造函数中设置为true,但我想在mapProps之后将其更改为false。我的控制台读取到,在满足我的条件后,edit仍然设置为true。为什么这不起作用?提前谢谢你 componentDidMount() { this.mapProps(); } mapProps = () => { this.setState( { items: this.props.items,

我想在mapProps完成后更新编辑状态。我的编辑状态在构造函数中设置为true,但我想在mapProps之后将其更改为false。我的控制台读取到,在满足我的条件后,edit仍然设置为true。为什么这不起作用?提前谢谢你

 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)