将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 2,VUEX,编辑数据时的数据绑定

Vuex 和 VueJS(不要在突变处理程序之外改变 vuex 存储状态)

VueJS v3、Vuex 和 Composition API 以及输入字段上的 v-model

使用 Vuex 时如何测试 Vuejs 组件

VueJS - Vuex 状态更新时组件不更新