小编Pie*_*aid的帖子

navigation.navigate('Home') 在打字稿中显示一些错误

当我使用 useNavigation 或 props { navigation } 使用 navigation.navigate('Home') 在屏幕之间导航时,打字稿返回错误 Argument of type '"Main"' is not allocate to type '{ key: string; 参数?:未定义;合并?:布尔值 | 不明确的; } | { 名称:从不;键?: 字符串 | 不明确的; 参数:从不;合并?:布尔值 | 不明确的; }' 这是什么意思?

下面是我的代码:

import React from 'react';
import { View } from 'react-native';
import { Button } from 'react-native-paper';
import { useNavigation } from '@react-navigation/native';

const Home: React.FC = () => {
  const navigation = useNavigation();

  return (
    <View style={{ flex: 1, justifyContent: 'center', alignItems: …
Run Code Online (Sandbox Code Playgroud)

react-native react-navigation

31
推荐指数
4
解决办法
4万
查看次数

如何在Angular 2中编辑Form Control值时不发出事件

我正在尝试使用Angular2和Form Control编写自动完成输入字段.

首先我决定初始化我的表单控件如下:

term = new FormControl();

constructor(private _autocompleteService: AutocompleteService) {
  this.term.valueChanges
      .debounceTime(300)
      .distinctUntilChanged()
      .flatMap(search => this._autocompleteService.autocomplete(this.urlSearch, search))
      .subscribe(
          autocomplete => this.autocomplete = autocomplete,
          error => console.log(error)
      );
}
Run Code Online (Sandbox Code Playgroud)

_autocompleteService将搜索请求发送到服务器并返回一个字符串数组.

我的html模板看起来就是这样.它显示了输入下的建议列表,其中可以选择每个元素.

<input type="text" [formControl]="term">
  <ul>
    <li *ngFor="let suggestion of autocomplete" (click)="selectChoice(suggestions)">{{ suggestion }}</li>
  </ul>
Run Code Online (Sandbox Code Playgroud)

这是选择功能:

selectChoice(choice: string) {
  this.autocomplete = [];       // We clean the list of suggestions
  this.term.setValue(choice);   // We write the choice in the term to see it in the input
  this.selected = resp;
}
Run Code Online (Sandbox Code Playgroud)


这是问题所在.当我编辑术语的值时,它会发出一个事件并发送一个新的搜索请求,显示一个新的建议列表.

有没有办法防止这种事件发生,只是改变输入中显示的值?

angular

9
推荐指数
1
解决办法
8665
查看次数

使用 Pinia 存储在 IndexedDB 中

是否可以使用 Pinia 将数据本地存储在 IndexedDB 中?

我尝试使用 Pinia 持久状态,它默认将数据本地存储在 LocalStorage 中。我只是想尝试一下它是否可以与 IndexedDB 一起使用,因为它具有更大的容量。

local-storage indexeddb vue.js pinia

7
推荐指数
1
解决办法
3788
查看次数

在 Vue 中,哪个 watcher 会先被调用?是对一个对象进行深度观察,还是对该对象的属性进行观察?

如果我有下面这个Vue对象,并且myObj.myProp1被改变了,哪个watcher会先被调用?什么决定了订单,有什么方法可以操纵订单?

new Vue({
    data: {
        myObj: {
            myProp1: "one",
            myProp2: "two"
        }
    },
    computed: {
        myProp1: function () { return this.myObj.myProp1; }
    },
    watch: {
        myProp1: function () { alert("myProp1 Changed") },
        myObj: {
            handler: function () { alert("myObj Changed") },
            deep: true
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

当我测试它时,首先调用指向该属性的观察者,但我想确保它不是侥幸,并且依赖于我可能不知道的代码中的其他内容。

是否只是观察者在Vue对象的观察者段中列出的顺序?

javascript vue.js

5
推荐指数
1
解决办法
397
查看次数

在 Vue 的递归组件中传递作用域槽

我想实现 vue 组件 - 树。每个节点不知道如何显示自己,客户应该知道(见第 5 行)。我想为父节点和所有子节点设置作用域插槽。但是子数据没有传递到第 3 级正确显示。示例https://codepen.io/vlapenkov/pen/gOpbxRG?editors=1011

<div id="app" class="jstree jstree-default jstree-default-medium">
  <ul class="jstree-container-ul jstree-children jstree-no-icons">
    <tree-item
      v-for="(child, index) in treeData"
      :item="child"
      :is-last="treeData.length-1 === index"
      :level="0"
    >
      <template scope="shape">
        <div style="position:relative; display:inline-block;">{{ shape.name }}</div>
      </template>
    </tree-item>
  </ul>
</div>

<template id="item-template" >
  <li class="jstree-node" v-bind:class="className">
    <i class="jstree-icon jstree-ocl" v-on:click="toggle"></i>
    <a class="jstree-anchor" href="#" v-bind:class=" isSelected ? 'jstree-clicked':''">
      <i class="jstree-icon jstree-themeicon"></i>
      <span>{{item.name}}</span>
      <slot v-bind="item"></slot>
    </a>
    <ul v-show="isOpen" class="jstree-children">
      <tree-item
        v-for="(child, index) in item.children"
        :key="index"
        :item="child"
        :is-last="item.children.length-1 === index"
        :level="level+1"
      > …
Run Code Online (Sandbox Code Playgroud)

vue.js

5
推荐指数
1
解决办法
394
查看次数

如何阻止 i18n 在 Vue 上重新加载页面时恢复为默认语言环境?

我正在使用 i18n 在 Vue 上翻译我的应用程序。我创建了一个组件名称 LocaleChanger 来允许用户更改应用程序语言。我在两个不同的地方使用它:登录页面和仪表板页面。

默认区域设置语言是西班牙语。我在登录页面,将语言更改为英语,然后登录并推送到仪表板。语言仍然是英语。但如果我重新加载页面,语言就会更改为西班牙语。我怎样才能阻止这种情况发生?

这是我的组件

<template>
  <v-menu offset-y>
      <template v-slot:activator="{ on }">
        <v-btn class="transparent" rounded outlined v-on="on">
          <v-icon class="pr-3">mdi-web</v-icon> 
           {{  $store.getters.getAppLanguage }}
          <v-icon class="pl-3">mdi-menu-down</v-icon> 
        </v-btn>
      </template>

      <v-list>
        <v-list-item-group>
          <v-list-item
            v-for="(item, i) in items"
            :key="i"
            @click="setLanguage(item)"
          >
            <v-list-item-content class="text-center">
              <v-list-item-title v-text="item.text"></v-list-item-title>
            </v-list-item-content>
          </v-list-item>
        </v-list-item-group>
      </v-list>
    </v-menu>
</template>

<script>
export default {
  name: 'LocaleChanger',
  data () {
    return {
      selectedLanguage: this.$store.getters.getAppLanguage,
      items: [
        {
          text: 'ES',
        },
        {
          text: 'EN',
        },
      ],
    }
  },
  methods: {
    // Set …
Run Code Online (Sandbox Code Playgroud)

persistence internationalization vue.js

3
推荐指数
1
解决办法
7303
查看次数