javascript - 需要对一些基本设置进行一些说明

标签 javascript reactjs redux

看了几个 Redux 教程后,我还有几个问题:

  1. 创建我的商店后,我有:

    ReactDOM.render(, document.getElementById('root'));

    进入 App 组件,我定义:

    function mapStateToProps(state) {
        return {
            posts: state.posts,
            comments: state.comments 
        }
    }
    
    function mapDispatchToProps(dispatch) {
        return bindActionCreators(actions, dispatch)
    }
    

    statedispatch 从何而来?自从我将它连接到我的组件后,这是否会自动引用 store 的状态和调度?

  2. 我的一个 React 组件有一个表单,在提交时调用一个函数:

    handleSubmit(event) { ... }
    

    所以在该组件的构造函数中,我有:

    constructor() {
        super()
        this.handleSubmit = this.handleSubmit.bind(this);
    }
    

    在声明 React 类组件时是否总是需要调用 super()? 为什么我需要在那里进行这种类型的绑定(bind)?

  3. 提交该表单后,我发送一个名为 addPost 的操作。 它如何“进入” reducer ?是否只是因为在我创建商店并使用 mapDispatchToProps(dispatch) 我“让”Redux 知道可以将哪些操作分派(dispatch)给该 reducer 时提供了 reducer?

  4. reducer 只返回一个state 对象。实际将该状态“保存”到商店中的逻辑在哪里?是不是隐藏了?

最佳答案

  1. 是的,请客statedispatch分别作为对您的 redux 状态和调度函数的引用。

  2. React docs说:

    If you don’t initialize state and you don’t bind methods, you don’t need to implement a constructor for your React component.

为你的处理程序尝试一个箭头函数:

class MyComponent extends Component {
    handleSubmit = () => {
        // ...
    }
}
  1. reducer 给了 store,store 给了 react-redux <Provider>组件,Provider 组件提供了一个 React context后代组件中的分派(dispatch)操作被所述缩减器接收。

  2. 该逻辑在 redux 库中。

关于javascript - 需要对一些基本设置进行一些说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070745/

相关文章:

reactjs - 在 Next/React 完成加载之前显示带有百分比的加载横幅

reactjs - 如何使用react-redux实现登录认证?

typescript - 如何正确使用 Redux Toolkit 中的 createAsyncThunk 和 TypeScript?

javascript - 如何避免node.js自然地分割带有特殊字符的单词

javascript - 如何在 PhoneGap 中编写基本的 "Hello World"java 脚本插件?

javascript - 正则表达式以验证特殊字符集

javascript - 页面加载时向上滑动图像

javascript - 在样式化组件中使用 Ant Design 变量

javascript - Redux 表单不使用预加载的 CSS/JS

reactjs - 需要有关 ReactNative、Redux 和 Navigator 的一些概念的帮助