Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改React中的文本字段时更新状态的延迟 从“React”导入React; 导出默认类App扩展React.Component{ 状态={ 项目:[], 案文:“” }; handleTextChange=事件=>{ 这是我的国家({ 文本:event.target.value }); }; render(){ 返回( 添加 ); } }_Javascript_Reactjs - Fatal编程技术网

Javascript 更改React中的文本字段时更新状态的延迟 从“React”导入React; 导出默认类App扩展React.Component{ 状态={ 项目:[], 案文:“” }; handleTextChange=事件=>{ 这是我的国家({ 文本:event.target.value }); }; render(){ 返回( 添加 ); } }

Javascript 更改React中的文本字段时更新状态的延迟 从“React”导入React; 导出默认类App扩展React.Component{ 状态={ 项目:[], 案文:“” }; handleTextChange=事件=>{ 这是我的国家({ 文本:event.target.value }); }; render(){ 返回( 添加 ); } },javascript,reactjs,Javascript,Reactjs,嘿,我是新来的反应,不能解决我的问题 为什么我的HandletExt不能立即更改文本的状态?每次我在console.log中记录“text”的状态时,它总是落后于应该的状态。例如,当我在文本字段中输入“a”时,state.text为“”。然后,当我输入'b'并查看state.text时,它是'a'。等等等等 谢谢这是一个重复的问题,但回答它是因为setState是异步的 了解更多信息。您将在哪里登录?我在你的代码中看不到任何“控制台.日志”这是否回答了你的问题?react的setState是异步

嘿,我是新来的反应,不能解决我的问题

为什么我的HandletExt不能立即更改文本的状态?每次我在console.log中记录“text”的状态时,它总是落后于应该的状态。例如,当我在文本字段中输入“a”时,state.text为“”。然后,当我输入'b'并查看state.text时,它是'a'。等等等等


谢谢

这是一个重复的问题,但回答它是因为setState是异步的


了解更多信息。

您将在哪里登录?我在你的代码中看不到任何“控制台.日志”这是否回答了你的问题?react的
setState
是异步的。您可以在
setState
完成后触发的回调函数中记录state的值,如下所示:
this.setState({text:textValue},()=>console.log(this.state.text))@RicardoGonzalez我的想法正是如此。我假设OP在
setState
调用之后立即在
handleTextChange
函数中执行此操作。请记住,
setState
不是立即命令。您可以执行以下操作以控制台记录状态
this.setState({text:event.target.value},()=>console.log(this.state))
UPDATE:@BryanElliott你比我先到。谢谢大家-所有这些答案都非常有用!谢谢,这真的很有帮助!

    import React from "react";

    export default class App extends React.Component {
      state = {
        items: [],
        text: ""
      };

      handleTextChange = event => {
        this.setState({
          text: event.target.value
        });

      };

      render() {
        return (
          <div className="appMain">
            <form onSubmit={this.addItem}>
              <input
                placeholder="Enter task: "
                onChange={this.handleTextChange}
                value={this.state.text}
              />
              <button type="submit">Add</button>
            </form>
          </div>
        );
      }
    }