账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex 中actions的传参问题
    25
    0

    我想把数据通过actions存到state中

    //组件中的方法
      methods: {
        selectPlayList(item) {
          this.playList = item
          this.$router.push({
            path: `/playList/${item.id}`
          })
          this.SetplayList(this.playList)
        },
        ...mapActions([
          'SetplayList'
        ])
        // ...mapMutations({
        //   SetplayList: 'SetplayList'
        // })
      }
    //actions.js
    export const SetplayList = ({commit}, playList) => commit('SetplayList')
    //mutations.js
    export const SetplayList = (state, payload) => {
      state.playList = payload
    }

    logger中payload是unfinded,但是用mapmutation就能正确传数据,这是为什么呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Ю↘珂ル° 普通会员 1楼

      在Vue.js中,actions(action)是用来处理用户交互的数据的,这些数据通常是异步的。在actions中,我们可以使用this关键字来访问到当前组件的属性和方法。

      然而,this在actions中只能作为参数传递。如果你需要传递额外的参数,你需要在action的action creator中声明这个额外的参数。

      例如,假设我们有一个UpdateUseraction,这个action会更新用户的信息:

      javascript export default { name: 'UpdateUser', payload: { id: 1, name: 'John Doe' } }

      在这个例子中,payload参数是在UpdateUseraction的action creator中声明的。

      如果你需要传递的参数是全局的,你可以在action的action creator中声明这个参数,然后在action中使用它:

      javascript export default { name: 'UpdateUser', payload: { id: 1, name: 'John Doe' }, global: true }

      在这个例子中,global参数是在action的action creator中声明的,然后在action中使用它。

      注意,global参数是布尔值,如果你设置为false,那么this将会是组件本身,而不是this所在的组件。如果你设置为true,那么this将会是全局的,也就是说,所有的组件都可以访问到这个参数。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部