1.dispatch、dev派發
src/models/formStatus.js:
const FromStatusModel = {namespace: "fromStatus",state: {isDisable: false,},reducers: {saveIsDisable(state, { payload }) {return {...state,...payload,};},},
};export default FromStatusModel;
改變和提交的js文件寫法:
import { useDispatch, useSelector } from 'umi';const dispatch = useDispatch();
const { isDisable } = useSelector((state) => state.formStatus);const onclick = () => {dispatch({type: 'formStatus/saveIsDisabled',payload: { isDisable: isDisable === true ? false : true },});
};<Button type="primary" onclick={onclick()}>dev派發
</Button>
<div>是否可以傳遞{isDisable}</div>
通過useSelector進行傳值,通過dispatch進行改變內容。
在 React 和 Redux 的上下文中,"dispatch" 是一個核心概念,它指的是派發(發送)一個 action,這是一個告訴 Redux store 如何更新狀態的普通 JavaScript 對象。在 Redux 中,dispatch 是由 Redux 提供的一個 action 派發器(action dispatcher)。
當你在 Redux 應用中派發一個 action 時,Redux store 會根據這個 action 中的信息來更新其狀態。這個過程通常是通過 dispatch 一個由 actionCreator
返回的 action 來完成的。
// 假設有一個 actionCreator 函數
function addTodo(text) {return {type: 'ADD_TODO',payload: text};
}// 在一個組件中,你可能會這樣使用 dispatch
const dispatch = useDispatch();function handleClick() {dispatch(addTodo('Learn UMI'));
}
在這個例子中,addTodo
是一個 actionCreator,它返回一個 action 對象。當 handleClick
函數被調用時,它 dispatch 這個 action,導致 Redux store 更新。
在開發過程中,你可能會使用如下的做法來派發 action:
// 使用 Redux 的 actionCreator 創建一個 action
const action = addTodo('Learn UMI');// 派發 action
dispatch(action);
如果你是在尋找如何在 React 應用中使用 Redux 的 dispatch 方法,那么關鍵是要確保你有一個 Redux store(通過 Provider
組件提供給你的應用),并且你的組件是通過 useDispatch
鉤子來獲取 dispatch 函數的。