Вы вызываете действие saveUsersProfile
, используя mapActions
, но не отображая его. По сути, это означает, что ваши действия будут называться без полезной нагрузки (оно будет установлено на {}
, я полагаю). Таким образом, payload[0]
оценивается как undefined
. При попытке вызвать .name
, выдает эту ошибку, которую вы получили.
Вам необходимо отобразить ваше действие.
С здесь :
mapActions будет просто отображать действия.
Он создает для вас сокращения, и вы вызываете методы, как и любые другие обычные методы. после ...mapActions('auth', ['login'])
this.$store.dispatch('auth/login', yourPayload)
равно
this.login(yourPayload)
В вашем случае необходимо добавить метод в вашем скрипте сеанса:
<script>
import { mapActions } from "vuex";
export default {
name: "profile",
data: () => ({
file: null
}),
methods: {
...mapActions("store", ["saveUsersProfile"]),
saveUsersProfile({name}),
},
и для магазина:
//Let users change Profile Picture
saveUsersProfile({}, payload) {
// Get the File
const file = payload; // I don't understand why you need [0], but maybe I'm wrong
const extension = file.name.split(".").pop();
...
Удачи