【发布时间】:2021-07-19 01:59:46
【问题描述】:
我正在 React 上实现 Redux,它目前正在运行,但我不确定它是否正确。我有一个包含 3 个文件的 redux 文件夹:actions、reducers 和 store。
Actions 有这个代码:
export const SETTER_USER = "SETTER_USER"
export const setterUserAction = ({ email, username, role, lastVideo }) => ({
type: SETTER_USER,
payload: { email, username, role, lastVideo }
})
我从组件调用这个动作,这是组件上的代码:
import React, { useState, useEffect } from "react";
import { connect } from 'react-redux'
import { setterUserAction } from '../../redux/actions'
...
const Login = ({ navigation, user, setUser }) => {
...
}
const mapStateToProps = state => ({
user: state.user
})
const mapDispatchToProps = ({
setUser: setterUserAction
})
export default connect(mapStateToProps, mapDispatchToProps)(Login)
我曾经在组件内部有action,我可以想象这并不理想。所以我把它移到了一个 actions.js 文件中。但是现在我没有使用 dispatch 函数,这感觉很奇怪,因为 dispatch 是整个模式的一部分。所以你怎么看?这是否正确实施?还是只是靠运气?
【问题讨论】:
-
mapDispatchToProps是一个对象吗?我看到你在定义它时有() -
@Viet 你说得对, ( ) 与那里无关。
标签: reactjs design-patterns redux components dispatch