小编Dev*_*evb的帖子

在 React Router v6 中,如何在离开页面/路由之前检查表单是否脏

以下是我正在使用的软件包版本。

React version - 16.13.1
react-router-dom version - 6.0.0-beta.0
react-redux version 7.2.0
Material UI version 4.11.0
Run Code Online (Sandbox Code Playgroud)

isDirty当用户试图离开当前页面时,如何/什么是检查表单(已更改)的最佳方法?如果表单isDirty.

我将从内部获取数据useEffect()并使用 redux reducer 来呈现 UI。

我应该声明一个变量来保留原始获取的数据以进行脏检查吗?

这就是我正在做的事情,但它无法正常工作。

组件.js

 useEffect(() => {
    props.fetchUserInfo();
 })
Run Code Online (Sandbox Code Playgroud)

动作.js

export function fetchUserInfo() {
 return (dispatch) => {
     dispatch({type: USER_INITIALSTATE, {Name: 'abc', Age: 20}} 
     )
 }
}
Run Code Online (Sandbox Code Playgroud)

userReducer.js

const initialState = {
  processing: false,
  success: false,
  fail: false,
  Profile: {}
}
let oriState;
let State;
const UserReducer = (state = initialState, action) => { …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router material-ui react-redux

10
推荐指数
2
解决办法
5022
查看次数

如何将对象拆分为嵌套对象?(递归方式)

我有一个包含下划线(_)变量名的数据集。如下图:

const data = {
   m_name: 'my name',
   m_address: 'my address',
   p_1_category: 'cat 1',
   p_1_name: 'name 1',
   p_2_category: 'cat 2',
   p_2_name: 'name 2'
}
Run Code Online (Sandbox Code Playgroud)

我想将它们拆分为嵌套对象/数组,下面是我想要的结果。

{
 m: {
     name: "my name",
     address: "my address"
 },
 p: {
    "1": {category: 'cat 1', name: 'name 1'}, 
    "2": {category: 'cat 2', name: 'name 2'}
 } 
}
Run Code Online (Sandbox Code Playgroud)

如何编写递归方法来实现它而不是硬编码?也许它应该允许处理更深的嵌套对象,例如 "p_2_one_two_category: 'value'" 到 p:{2:{one:{two:category:'value'}}}

const data = {
   m_name: 'my name',
   m_address: 'my address',
   p_1_category: 'cat 1',
   p_1_name: 'name 1',
   p_2_category: 'cat 2',
   p_2_name: 'name 2' …
Run Code Online (Sandbox Code Playgroud)

javascript arrays recursion object

8
推荐指数
1
解决办法
646
查看次数