📜  如何从 store in action redux 中获取状态 - Javascript (1)

📅  最后修改于: 2023-12-03 15:23:46.984000             🧑  作者: Mango

如何从 store 中的 action 获取状态 - Javascript

在使用 Redux 管理状态时,有时需要从 store 中的 action 中获取最新的状态值。本文将介绍如何实现这一功能。

步骤
  1. 打开相应的 action 文件,比如 src/actions/exampleAction.js
  2. 引入对应的 type 常量。比如:
import { EXAMPLE_ACTION_TYPE } from '../constants/actionTypes';
  1. action 定义中,将当前的状态值作为 payload 返回。比如:
export const exampleAction = () => ({
  type: EXAMPLE_ACTION_TYPE,
  payload: {
    currentValue: getState().value
  }
});

这里的 getState() 是一个 Redux 提供的方法,用于获取当前的 store 状态值。在这里,我们可以通过 getState().value 获取 store 中的值,并将其传递给 payload 作为返回值。

  1. 在组件中调用该 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>
  )
}
  1. 在组件中,监听对应的 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 获取最新的状态值,希望对大家有所帮助。