将VueX存储状态值绑定到输入(VueJS)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将VueX存储状态值绑定到输入(VueJS)相关的知识,希望对你有一定的参考价值。
我是VueJS的新手,我正在创建一个VueJS应用,您可以在其中获取有关Github用户的一些信息,(例如:https://api.github.com/users/versifiction)
我使用VueX创建了一家商店,但我需要更新用户在输入中写入的值,我的“ inputValue”始终位于“”(其默认值),并且在输入中键入内容时,存储值仍位于“”
我尝试过这个:Input.vue
<template>
<div class="input">
<input
type="text"
:placeholder="placeholder"
v-model="inputValue"
@change="setInputValue(inputValue)"
@keyup.enter="getResult(inputValue)"
/>
<input type="submit" @click="getResult(inputValue)" />
</div>
</template>
<script>
import store from "../store";
export default {
name: "Input",
props: {
placeholder: String,
},
computed: {
inputValue: () => store.state.inputValue,
},
methods: {
setInputValue: (payload) => {
store.commit("setInputValue", payload);
}
},
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped></style>
和这个:store / index.js
import Vue from "vue";
import Vuex from "vuex";
import axios from "axios";
Vue.use(Vuex);
export default new Vuex.Store({
state: {
inputValue: "",
},
getters: {
getInputValue(state) {
return state.inputValue;
}
},
mutations: {
setInputValue(state, payload) {
console.log("setInputValue");
console.log("payload ", payload);
state.inputValue = payload;
},
},
});
答案
根据form handling
部分中的vuex文档,您应该做:
form handling
和
:value="inputValue"
@change="setInputValue"
以上是关于将VueX存储状态值绑定到输入(VueJS)的主要内容,如果未能解决你的问题,请参考以下文章
Vuex 和 VueJS(不要在突变处理程序之外改变 vuex 存储状态)