![enter image description here](https://i.stack.imgur.com/1VOkQ.png)
Я создаю веб-приложение.
Я пытаюсь использовать react-hooks
.
и я почти закончил.
но я чувствовал, что мой избыточный поток - это что-то странное , как на картинке выше.
Мне просто интересно, что я делаю правильно.
MyStore.js
import {handleActions} from 'redux-actions';
import produce from 'immer';
export const INPUT_DATA = 'INPUT_DATA';
const initialState = {
id: '',
name: '',
email: '',
address: '',
gender: '',
};
export default handleActions({
[INPUT_DATA]: (state, action) => {
return produce(state, draft=>{
draft = {...state, ...action.payload};
});
},
...
},initialState);
FormA.jsx
import React from 'react';
import {useDispatch} from 'react-redux';
const FormA = () => {
const dispatch = useDispatch();
const [data, setData] = React.useState({id:'',name:'',email:''});
React.useEffect(()=>{
dispatch({type: INPUT_DATA, payload: data });
},[data]);
function handleChange(e,name){
setData({...data, [name]:e.target.value});
}
return (
<>
<input type="text" value={data.id} onChange={(e)=>handleChange(e,'id')} />
<input type="text" value={data.name} onChange={(e)=>handleChange(e,'name')} />
<input type="text" value={data.email} onChange={(e)=>handleChange(e,'email')} />
</>
);
}
FormB.jsx
import React from 'react';
import {useDispatch} from 'react-redux';
const FormB = () => {
const dispatch = useDispatch();
const [data, setData] = React.useState({address:'',gender:''});
React.useEffect(()=>{
dispatch({type: INPUT_DATA, payload: data });
},[data]);
function handleChange(e,name){
setData({...data, [name]:e.target.value});
}
return (
<>
<input type="text" value={data.address} onChange={(e)=>handleChange(e,'address')} />
<input type="text" value={data.gender} onChange={(e)=>handleChange(e,'gender')} />
</>
);
}