如何在 react native 中解决这个 JSX 错误?

Posted

技术标签:

【中文标题】如何在 react native 中解决这个 JSX 错误?【英文标题】:How to solve this JSX error in react native? 【发布时间】:2022-01-09 17:31:54 【问题描述】:

在包含 JSX for React native 的新 TS 文件上出现以下错误:

Unexpected token, expected ","

下面是我正在制作的组件的代码。错误似乎是

class TabLabel extends React.PureComponent<IReactionsLabelProps> 
    constructor(props: IReactionsLabelProps) 
        super(props);
    

    render = () => 
        const  name, baseUrl, getCustomEmoji, reactions, page, theme  = this.props;

        return (
            <View style= sharedStyles.tabView >
                <Emoji
                    content=name
                    standardEmojiStyle=sharedStyles.reactionEmoji
                    customEmojiStyle=sharedStyles.reactionCustomEmoji
                    baseUrl=baseUrl
                    getCustomEmoji=getCustomEmoji
                />
                <Text style=
                    ...sharedStyles.textBold, color: themes[theme].bodyText
                >
                     reactions[page]?.usernames?.length 
                </Text>
            </View>
        );
    

linter 在 JSX 第一行的 "style" 属性附近提供了一个不同的错误: 解析错误:“>”预期

我完全陷入困境,不知道出了什么问题。 完整文件可在https://github.com/RocketChat/Rocket.Chat.ReactNative/blob/b1f9916ed8f9a423e356987d934998a139809627/app/views/ReactionsView/index.ts#L45获取。

以下完全错误:

【问题讨论】:

你能给出完整的错误,包括行号吗? 尝试将您的文本样式更改为[sharedStyles.textBold, color: themes[theme].bodyText ] @Dan 那是原来的。将其更改为您现在看到的内容以尝试解决错误。 不相关,但是为什么这里是实例属性函数而不是原型函数呢?没什么大不了的,但在这种情况下似乎不必要地多余。 @DaveNewton 确实是冗余的。拼命尝试改变某些东西并让它发挥作用,但无济于事。 【参考方案1】:

我会回答我自己的问题。而且我现在觉得自己非常愚蠢,不用说,我花了好几个小时试图解决这个问题。

只需将文件的扩展名从 .ts 更改为 .tsx,就可以了。

【讨论】:

以上是关于如何在 react native 中解决这个 JSX 错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JS/React-Native 中下载完整的 html 页面?

React-native + Relay.js 的稳定构建

如何让 three.js 在 React Native 中运行(没有 WebView)?

如何在 App.js (React-Native) 中访问 redux 状态

如何在 React Native 中显示图标?

如何在 React-Native 中禁用远程 JS 调试