📅  最后修改于: 2023-12-03 15:23:46.984000             🧑  作者: Mango
store
中的 action
获取状态 - Javascript在使用 Redux 管理状态时,有时需要从 store
中的 action
中获取最新的状态值。本文将介绍如何实现这一功能。
action
文件,比如 src/actions/exampleAction.js
。type
常量。比如:import { EXAMPLE_ACTION_TYPE } from '../constants/actionTypes';
action
定义中,将当前的状态值作为 payload
返回。比如:export const exampleAction = () => ({
type: EXAMPLE_ACTION_TYPE,
payload: {
currentValue: getState().value
}
});
这里的 getState()
是一个 Redux 提供的方法,用于获取当前的 store
状态值。在这里,我们可以通过 getState().value
获取 store
中的值,并将其传递给 payload
作为返回值。
action
。比如:import { useDispatch } from 'react-redux';
import { exampleAction } from '../actions/exampleAction';
const ExampleComponent = () => {
const dispatch = useDispatch();
const handleClick = () => {
dispatch(exampleAction());
}
return (
<button onClick={handleClick}>获取状态值</button>
)
}
state
值。比如:import { useSelector } from 'react-redux';
const ExampleComponent = () => {
const currentValue = useSelector(state => state.currentValue);
return (
<div>当前状态值为:{currentValue}</div>
)
}
这里的 state.currentValue
对应 exampleAction.js
中定义的 payload
中的 currentValue
。通过 React-Redux 提供的 useSelector
方法,我们可以监听这个值的变化。
本文介绍了如何从 store
中的 action
获取最新的状态值,希望对大家有所帮助。