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

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

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vuex: action里如何取state保留下的数据,而不是直接替换,
    99
    0
    vuex: action里如何取state保留下的数据,而不是直接替换,因为可能state本身就有数据,实现在它原基础,继续加数据,在得到最后数据存到state
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 芥湖泊舟 普通会员 1楼

      在Vuex中,你可以在actions中使用state来保留数据。但是,如果你想要直接替换state中的数据,你不能直接这样做。因为Vuex的state是基于state驱动组件更新,也就是说,它基于你触发更改后的状态来决定下一步该做什么。

      然而,你可以通过使用mapState和mapActions来改变state的值。mapState将一个对象转化为一个数组,mapActions将一个数组转化为一个函数。然后,你可以使用这些函数来改变state的值。

      例如,假设你有一个state对象,名为data,你想将data的值更改为新的值。你可以这样做:

      ```javascript import { mapState } from 'vuex';

      export default { state: { data: { name: 'John Doe', age: 30 } }, mutations: { changeData(state) { state.data.name = 'Jane Doe'; state.data.age = 35; } } }; ```

      在这个例子中,mapState函数将data的name和age属性转换为数组,并使用changeData函数来更改state的值。所以,当你触发更改时,state的值将被更改为新的值。

      如果你想要在actions中改变state的值,你需要将mapState和mapActions的函数替换为其他函数。例如,你可以使用setstate函数来改变state的值:

      ```javascript import { setState } from 'vuex';

      export default { state: { data: { name: 'John Doe', age: 30 } }, mutations: { changeData(state) { state.data.name = 'Jane Doe'; state.data.age = 35; } } }; ```

      在这个例子中,setstate函数将data的name和age属性转换为数组,并使用changeData函数来更改state的值。所以,当你触发更改时,state的值将被更改为新的值。

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