找不到名称 React$Node React Native

Posted

技术标签:

【中文标题】找不到名称 React$Node React Native【英文标题】:Cannot find name React$Node React Native 【发布时间】:2020-08-08 01:24:50 【问题描述】:

我正在将 typescript 添加到我的 react-native 应用程序中,

在 App.tsx 中

我在 Cannot find name React$Node 上遇到此错误

const App: () => React$Node = () => 
 ...

【问题讨论】:

请接受对您问题的适当答案。 【参考方案1】:

我不确定您使用的语法,也不确定React$Node 的来源。根据我的经验,正确的输入和语法应该是React.ReactNodeReact.ReactElement。例如:

import React from 'react'

const App = (): React.ReactElement =>  

  return (
    // component code
  )

至于ReactNodeReactElement 之间的区别(因为我并不完全确定),我发现ford04 的answer 很有用——在此引用:

ReactElement 和 JSX.Element 是调用 React.createElement 的结果 直接或通过 JSX 转译。它是一个带有type 的对象, propskey。 [JSX.Element]

ReactNode 用作类组件中render() 的返回类型。它也是children 属性的默认类型 [PropsWithChildren]

【讨论】:

我刚刚查找了React$Node - 它是Flow 类型。所以 TypeScript 对应的类型是ReactNode(或者React.ReactNode,如果你不导入它)。确保安装@types/react@types/react-native

以上是关于找不到名称 React$Node React Native的主要内容,如果未能解决你的问题,请参考以下文章

-bash:react-native:找不到命令

-bash:react-native:找不到命令

Typescript - React 组件中的“找不到名称”错误

编译失败。 ./node_modules/react-dev-utils/formatWebpackMessages.js 找不到模块:无法解析

即使我在 node_modules 中看到私有 react-native 库也突然找不到

在 ../node_modules/react-native-stomp-websocket 中找不到 RNStompWS 的 podspec