Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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/3/reactjs/27.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 反应:状态对象属性未更新_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 反应:状态对象属性未更新

Javascript 反应:状态对象属性未更新,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我正在尝试更新我的状态,但同时,当我在控制台中更新状态值时,它会给我一条消息,说明您的状态值未定义。请问有人能帮我解决这个问题吗。我使用rc时间选择器拾取时间并将选定的时间存储在localstorage中,但它没有更新状态值 谢谢 代码 在构造函数中初始化状态时,应将道具传递给超级: 您得到的未定义值只是getItem的结果。您得到未定义值的原因是您正在使用调用localStorage.setItem返回的值设置新状态,该值未定义 以下是您需要执行的操作: 类时间扩展组件{ 构造器{ 超级作物

我正在尝试更新我的状态,但同时,当我在控制台中更新状态值时,它会给我一条消息,说明您的状态值未定义。请问有人能帮我解决这个问题吗。我使用rc时间选择器拾取时间并将选定的时间存储在localstorage中,但它没有更新状态值 谢谢

代码

在构造函数中初始化状态时,应将道具传递给超级:


您得到的未定义值只是getItem的结果。您得到未定义值的原因是您正在使用调用localStorage.setItem返回的值设置新状态,该值未定义

以下是您需要执行的操作:

类时间扩展组件{ 构造器{ 超级作物 this.state={value:} } // ... newHandleChange=值=>{ 常数时间=值。格式“h:mm a” localStorage.setItem'currentTime',time 这是我的国家{ 价值:时间 } } }
这样,您就可以将新时间保存到一个变量中,并使用它更新localStorage中的currentValue和组件中的状态。

您需要将正确的值设置为状态,请检查下面的代码

  newHandleChange=(value)=>{
    localStorage.setItem("currentTime",value.format('h:mm a')) // if you really needs the local storage.

    this.setState({
        value: value.format('h:mm a')
    })
  }
试着用这个`

newHandleChange =val=> {
const value=localStorage.setItem('currentTime', val.format('h:mm a'))

    this.setState({
      value
    })
  }`

查看此应用程序

localStorage.setItem返回undefined,您正在使用该undefined设置状态。与getItem错误不同,您确实需要传递构造函数使用props调用的参数。或者根本不定义构造函数,而是使用字段声明阶段3来声明状态,几乎总是在React设置中传输。未定义它只是localStorage.getItem调用的结果。请回答您应该像上面那样通过初始化状态。但是,您得到的未定义只是localStorage返回unfinedfwiw,我可以看到两个可能的原因:1。没有解释。2.格式化两次。我猜大多数是1。当我认为它使用以前的值时,它不会向数据库发送正确的选择值,因为每当用户单击它更新的内容时,我都在从下拉列表中进行选择localstorage@goto1-不,我在问谁否决了你的答案,他们为什么这么做。@Jonas这不是你最初的问题所要求的——这是你上面描述的问题的有效解决方案。您的数据库调用使用了不正确的值,这是在其他地方发生的另一个问题。@Jonas-此代码更正了问题代码中的错误。如果您在保存到数据库时遇到问题,这是在不同的代码中出现的,而不是问题的正确答案。
  newHandleChange=(value)=>{
    localStorage.setItem("currentTime",value.format('h:mm a')) // if you really needs the local storage.

    this.setState({
        value: value.format('h:mm a')
    })
  }
newHandleChange =val=> {
const value=localStorage.setItem('currentTime', val.format('h:mm a'))

    this.setState({
      value
    })
  }`