小编Y H*_*H R的帖子

TypeScript:KeyboardEvent/Event 类型和 addEventListener 的问题

我编写了一个 React 汉堡菜单,它可以使用常规 JS/JSX 正常运行,但不能使用 TS/TSX。

问题在于我选择的事件类型keydown(作为函数的参数keyboardHandler),显示此错误:

没有重载与此调用匹配。重载 1 of 2, '(type: "keydown",listener: (this: Document, ev: KeyboardEvent) => any, options?: boolean | AddEventListenerOptions | undefined): void',给出以下错误。类型“(e: KeyboardEvent) => void”的参数不可分配给类型“(this: Document, ev: KeyboardEvent) => any”的参数。参数“e”和“ev”的类型不兼容。类型“KeyboardEvent”缺少类型“KeyboardEvent”中的以下属性:区域设置、nativeEvent、isDefaultPrevented、isPropagationStopped、persist

Overload 1 of 2keyboardHandler通过组件安装链接到 的订阅addEventListener,Overload 2 of 2 通过卸载链接到其取消订阅。

import React, { FC, Dispatch, KeyboardEvent, useEffect } from "react";

export interface IBurgerMenu {
  toggled: boolean;
  navbar: boolean;
  setToggled: Dispatch<React.SetStateAction<boolean>>;
}

/* Props from Nav component */
const BurgerMenu: …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

4
推荐指数
1
解决办法
4233
查看次数

使用 i18n 返回翻译内容的 JSON 数组

上下文:react-i18next我正在使用ReactJS 模块制作一个多语言页面。

问题:我无法访问排列的 JSON 内容。

翻译的内容存储在每种语言的单独 JSON 文件中,非数组内容工作正常并正确显示和翻译,但是,我似乎无法在 React 组件上使用数组内容,更不用说通过console.log().

以下是我的文件的示例translationEN.json

{
  "name": "Test",
  "occupations":["occupation1",
  "Part-time occupation2",
  "Language enthusiast"]
}
Run Code Online (Sandbox Code Playgroud)

我可以name使用 来引用非数组i18n.t("name")。但是,尝试访问我的 arrayed occupationsusingi18n.t("occupations")结果会出现在以下 console.log 中:

key 'occupations (en)' returned an object instead of string.

使用JSON.stringify()并不能解决问题,也不能console.log(i18n.t("occupations"), { returnObjects: true })按照i18next 文档中的建议解决问题

提前致谢!

arrays json i18next reactjs react-i18next

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

标签 统计

reactjs ×2

arrays ×1

i18next ×1

json ×1

react-i18next ×1

typescript ×1