添加 mapDispatchToProps


  • 0
    administrators

    参考文章 如何在非 React 项目中使用 Redux。完成下面代码中 TODO 部分,给 provider 添加 mapDispatchToProps 功能,可以类似于 React-redux 那样进行使用:

    let renderHeader = (props) => {
      const $el = $(`<div>${props.header}</div>`)
      /* 可以从 props 中提取方法 */
      $el.on('click', props.handleClickHeader.bind(this, 'New Header'))
      $('#header').html($el)
    }
    
    let mapStateToProps = (state) => ({
      header: state.header
    })
    
    /* 需要支持下面的用法 */
    let mapDispatchToProps = (dispatch) => ({
      handleClickHeader (header) {
        dispatch({ type: 'UPDATE_HEADER', header })
      }
    })
    renderHeader = connect(mapStateToProps, mapDispatchToProps)(renderHeader)
    

    mapDispatchToProps 返回的对象会合并到 props 当中传给 render 函数。


登录后回复
 

与 ScriptOJ 的连接断开,我们正在尝试重连,请耐心等待