Reactjs 反应Js状态不';t更新

Reactjs 反应Js状态不';t更新,reactjs,Reactjs,我的状态没有及时设定,或者根本没有设定。下面是用于更改它的函数: onChangeHandler(event){ this.setState({ selectedFile: event.target.files[0], loaded: 0, } console.log(`this is the state ${this.state.selectedFile}`) }) setState是异步的,正如一位评论员所说。为它提供回调,它就可以工作: onC

我的状态没有及时设定,或者根本没有设定。下面是用于更改它的函数:

onChangeHandler(event){
  this.setState({
    selectedFile: event.target.files[0],
    loaded: 0,
    }
      console.log(`this is the state ${this.state.selectedFile}`)
  })

setState
是异步的,正如一位评论员所说。为它提供回调,它就可以工作:

onChangeHandler(事件){
这是我的国家(
{
selectedFile:event.target.files[0],
加载:0,
},
()=>console.log(`this is state${this.state.selectedFile}`)
)
}

但是我感觉你问这个问题是因为你有另一个问题…

你的代码有一个输入错误。您试图使用
setState
的回调签名,但实际上是将对象的函数部分设置为新状态(无论如何,这应该会导致错误)

const{
组成部分,
createElement
}=反应;
常数{
提供
}=反应性;
类MyComponent扩展组件{
建造师(道具){
超级(道具);
}
/*你的
onChangeHandler(事件){
这是我的国家({
selectedFile:event.target.files[0],
加载:0,
},
console.log(`this is state${this.state.selectedFile}`)
}),
*/
/*地雷*/
onClickHandler(){
这是我的国家(
{
计数:Date.now()
}, 
()=>console.log(`State已设置:${this.State.count}`)
);
}
render(){
返回createElement(“按钮”{
onClick:()=>{
this.onClickHandler();
}
},“点击我”);
}
}
常量应用=()=>{
返回createElement(“div”),null,
createElement(MyComponent)
);
};
渲染(
createElement(应用程序),
document.getElementById('app')
);

使用回调函数记录消息。 ` //setState(更新程序,[回调])


您正在运行哪个版本的react?我建议您深入了解“新”钩子实现的文档,如果在加载
后缺少
}
setState
是异步的。关于堆栈溢出还有很多其他问题要问。其他评论员,我认为这可能是一个输入错误,
函数
是调用的
[callback]
签名的一部分。很抱歉,我必须更新该函数。事实上,我在stackoverflow上看到了解决方案,但它也不起作用。我会将它设置为原始代码,不幸的是,它也会产生同样的问题。基本上,这是问题的一部分。我试图发送文件setState是为了更新到一个api,但它没有发送任何东西。我的console.log显然表明它没有得到更新;因为它总是显示null的初始值。@MarvelousIkechi
我正在尝试发送文件setState是要更新到api的,但它不发送任何内容
-请不要搞错,您的状态正在更新。但是现在您讨论的是一个单独的问题—您没有发布任何在状态更改时发出API请求的代码。
onChangeHandler(event){
  this.setState({
    selectedFile: event.target.files[0],
    loaded: 0
  },
  console.log(`this is the state ${this.state.selectedFile}`));
}