当前位置: 首页 > 知识库问答 >
问题:

React Hooks-将状态设置为初始状态

薛俊美
2023-03-14

我正在使用React-useState创建状态为的对象。在成功调用API后,将更新为数据对象。

我有一个表单可以更改此状态,但我还有一个取消按钮。单击“取消”时,如何将此状态恢复为其初始值(API调用后)?

我应该创建另一个状态变量和存储初始状态在那里,然后更新我的状态基于?

  const [basePosition, setBasePosition] = useState({});
  const [position, setPosition] = useState({
    id: '',
    title: '',
    description: '',
    authoredBy: '',
    createdDate: '',
    lastUpdatedBy: '',
    lastUpdateDate: '',
    sliderResponses: [],
    tileResponses: [{}],
    template: {}
  });```

共有3个答案

秦滨海
2023-03-14

您不需要创建另一个状态。只需声明一个不会改变的初始状态,并在需要重置时将其分配给位置状态。EX:

import React,{useState} from 'react'

const YourComponent = () =>{
 const initialState = {
    id: '',
    title: '',
    description: '',
    authoredBy: '',
    createdDate: '',
    lastUpdatedBy: '',
    lastUpdateDate: '',
    sliderResponses: [],
    tileResponses: [{}],
    template: {}
  }
 const [basePosition, setBasePosition] = useState({});
  const [position, setPosition] = useState(initialState);
  const resetState = () =>{
     setPosition(initialState)
   }
}
闻人英韶
2023-03-14

不要创建另一个状态变量只是为了存储初始状态,因为它会导致另一个重新渲染,而不是当你的组件被安装时,然后初始化你的初始状态对象

let initialState = null;

React.useEffect(() => {
  initialState = position;
},[])

如果要重置为初始状态,只需使用:

setPosition(initialState);
百里锋
2023-03-14
const initialState = {
    id: '',
    title: '',
};

const Test = () => {
    const [position, setPosition] = useState(initialState);

    return <>
        ...form
        <button onClick={() => setPosition(initialState)}>Reset</button>
    </>;
};
 类似资料:
  • 本文向大家介绍Redux怎样设置初始状态?相关面试题,主要包含被问及Redux怎样设置初始状态?时的应答技巧和注意事项,需要的朋友参考一下 它必须是createStore的第二个参数: const rootReducer = combineReducers({ todos: todos, visibilityFilter: visibilityFilter }); const initialSta

  • 2)有没有另一种方法可以重写这个逻辑而不使用道具来设置状态? 父组件: 子组件

  • 问题内容: 我试图弄清楚如何为redux中的商店设置初始状态。我以https://github.com/reactjs/redux/blob/master/examples/todos- with- undo/reducers/index.js 为例。我试图修改代码,以便待办事项已初始化一个值。 按照文档操作:http : //redux.js.org/docs/api/createStore.h

  • 问题内容: 我目前正在使用注册表单,以下是我的代码段: 每个状态都用于表格的受控输入。 本质上,我想做的是在用户成功注册后,希望状态恢复为初始状态,并清除字段。 手动将每个状态设置为空字符串是非常必要的,因为我想知道React是否附带有一种方法或函数可以将状态重置为初始值? 问题答案: 遗憾的是,没有内置的方法可以将状态设置为其初始值。 您的代码看起来不错,但是如果您想减少所需的功能,则可以将整个

  • 我目前正在处理一个注册表单,以下是我的代码片段: 每个状态都用于表单的受控输入。 基本上,我想做的是在用户成功注册后,我希望状态返回到初始状态,并清除字段。 在中手动将每个状态设置回空字符串是非常必要的。我想知道React是否有一个方法或函数可以将状态重置回初始值?

  • 我试图使用SpringStateMachine构建器从yml文件配置状态机。它对状态和转换很好,但是当我试图包括一些子状态时,我得到了下面的异常。 org.springframework.stateMachine.config.model.malformedConfigurationException:初始状态未设置在org.springframework.stateMachine.config.