gpt4 book ai didi

reactjs - import & export may only appear at the top level——CRA React App with Typescript

转载 作者:搜寻专家 更新时间:2023-10-30 21:21:03 25 4
gpt4 key购买 nike

之前有人问过这个问题,但我相信我的背景有所不同。我正在运行一个配置了 Create React App 的 React 应用程序,该应用程序使用 --typescript 标志运行。

我尝试配置 eslint、prettier 和 husky 来运行预编译脚本,但事情开始出错。

我得到的错误是:'import' 和 'export' 可能只出现在顶层 并且它与以下组件中的这一行相关:导出默认注册

import React from 'react'
import { Link, withRouter } from 'react-router-dom'
import { compose } from 'recompose'

import { withFirebase } from '../Firebase'
import * as ROUTES from '../../constants/routes'

const SignUp = () => (
<div>
<h1>SignUp</h1>
<SignUpForm />
</div>
)

interface Props {
firebase: any
}

const Admin = ({ firebase }: Props) => {

const SignUpFormData = ({ firebase, ...props }: Props) => {
const initialState = {
username: '',
email: '',
password: '',
repeatPassword: '',
}

const stateReducer = (state, update) => ({ ...state, ...update })
const [state, dispatch] = React.useReducer(stateReducer, initialState)
const [error, setError] = React.useState({})

const formIsInvalid =
state.password !== state.repeatPassword ||
state.password === '' ||
state.username === '' ||
state.email === ''

const onSubmit = event => {
event.preventDefault()
const { username, email, password } = state

firebase
.auth()
.createUserWithEmailAndPassword(email, password)
.then(res => {
return firebase
.database()
.ref(`users/${res.user.uid}`)
.set({
username,
email,
})
})
.then(() => {
dispatch(initialState)
props.history.push(ROUTES.HOME)
})
.catch(error => setError(error))
}

const handleChange = ({ currentTarget: { name, value } }) => {
dispatch({ [name]: value })
}

return (
<form onSubmit={onSubmit}>
<input
name="username"
value={state.username}
onChange={handleChange}
placeholder="Full name"
/>
<input
name="email"
value={state.email}
onChange={handleChange}
placeholder="Email"
/>
<input
name="password"
type="password"
value={state.password}
onChange={handleChange}
placeholder="Password"
/>
<input
name="repeatPassword"
type="password"
value={state.repeatPassword}
onChange={handleChange}
placeholder="Repeat password"
/>
<button disabled={formIsInvalid} type="submit">
Sign Up
</button>
{error && <p>{error.message}</p>}
</form>
)
}

const SignUpLink = () => (
<p>
Don't have an account yet? <Link to={ROUTES.SIGN_UP}>Sign Up</Link>
</p>
)

const SignUpForm = compose(
withRouter,
withFirebase,
)(SignUpFormData)

export default SignUp

export { SignUpForm, SignUpLink }

我尝试从我的 package.json 中删除 eslint 条目,删除 yarn.lock,删除 node_modules 并重新安装 deps,但没有任何乐趣。

有没有人对从哪里开始调试有任何建议,我迷路了吗?

需要更多信息,请大声说。非常感谢。

编辑还要注意,我最初是用标准 js 编写应用程序的 auth 部分,目的是学习 JS,这些问题是在我将应用程序转换为 Typescript 文件的过程中发生的,所以我混合了 .js.tsx。我不确定这是否相关。

最佳答案

我想我明白了,只是少了一个右大括号。

可能在这里:

const Admin = ({ firebase }: Props) => {

没有关闭。

关于reactjs - import & export may only appear at the top level——CRA React App with Typescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56900648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com