尝试导入错误:“useHistory"未从“react-router-dom"导出 [英] Attempted import error: 'useHistory' is not exported from 'react-router-dom'

查看:96
本文介绍了尝试导入错误:“useHistory"未从“react-router-dom"导出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

useHistory 给出此错误:

<块引用>

无法编译 ./src/pages/UserForm/_UserForm.js Attempted import错误:useHistory"未从react-router-dom"导出.这构建期间发生错误,无法消除.

react-router-dom 版本:

<块引用>

4.3.1

代码:

import React, { useState, Fragment } from 'react';从'./FormUserDetails'导入FormUserDetails;从'./FormPersonalDetails'导入FormPersonalDetails;从'./Confirm'导入确认;从 './Success' 导入成功;从@material-ui/core/Button"导入按钮;从@material-ui/core"导入 { Grid, makeStyles };从'react-router-dom'导入{useHistory};函数用户窗体(){const [step, setStep] = useState(1);const 历史 = useHistory();const StepButtons = (道具) =>(<React.Fragment><网格项 xs={4}>{props.value !== 'initial' ?<按钮变体=概述"className={classes.button} onClick={(e) =>previousStep(e)}>返回</按钮>:<按钮变体=概述"className={classes.button} onClick={(e) =>reGenerate(e)}>Re-generate</Button>}</网格><网格项 xs={4}/><网格项 xs={4}>{props.value === '确认' ?<按钮变体=概述"className={classes.button} style={{ float: "right";}} onClick={(e) =>确认(e)}>确认</按钮>:props.value !== 'final' ?<按钮变体=概述"className={classes.button} style={{ float: "right";}} onClick={(e) =>nextStep(e)}>继续</按钮>:空值}</网格></React.Fragment>);const nextStep = (e) =>{e.preventDefault();setStep(prevState => prevState + 1)}const previousStep = (e) =>{e.preventDefault();setStep(prevState => prevState - 1)}const reGenerate = (e) =>{e.preventDefault();}const 确认 = (e) =>{history.push('/')}返回 (<div><h1>你好</h1>

)}导出默认用户表单

解决方案

我将 react-router-dom 的版本升级为

<块引用>

5.2.0

它现在正在工作.

useHistory giving this error:

Failed to compile ./src/pages/UserForm/_UserForm.js Attempted import error: 'useHistory' is not exported from 'react-router-dom'. This error occurred during the build time and cannot be dismissed.

react-router-dom version:

4.3.1

Code:

import React, { useState, Fragment } from 'react';
import FormUserDetails from './FormUserDetails';
import FormPersonalDetails from './FormPersonalDetails';
import Confirm from './Confirm';
import Success from './Success';
import Button from '@material-ui/core/Button';
import { Grid, makeStyles } from '@material-ui/core';
import { useHistory } from 'react-router-dom';


function UserForm() {
    const [step, setStep] = useState(1);
    const history = useHistory();


    const StepButtons = (props) => (
        <React.Fragment>
            <Grid item xs={4}>
                {props.value !== 'initial' ?
                    <Button variant="outlined" className={classes.button} onClick={(e) => previousStep(e)}>Back</Button> :
                    <Button variant="outlined" className={classes.button} onClick={(e) => reGenerate(e)}>Re-generate</Button>
                }
            </Grid>
            <Grid item xs={4} />
            <Grid item xs={4}>
                {
                    props.value === 'confirm' ?
                        <Button variant="outlined" className={classes.button} style={{ float: "right" }} onClick={(e) => confirm(e)}>Confirm</Button> :
                        props.value !== 'final' ?
                            <Button variant="outlined" className={classes.button} style={{ float: "right" }} onClick={(e) => nextStep(e)}>Continue</Button> :
                            null
                }
            </Grid>
        </React.Fragment>

    );
    const nextStep = (e) => {
        e.preventDefault();
        setStep(prevState => prevState + 1)
    }
    const previousStep = (e) => {
        e.preventDefault();
        setStep(prevState => prevState - 1)
    }
    const reGenerate = (e) => {
        e.preventDefault();
    }
    const confirm = (e) => {
        history.push('/')
    }
    return (
         <div>
            <h1>Hello</h1>
         </div>
    )
}
export default UserForm

解决方案

I upgraded the version of react-router-dom to

5.2.0

and it is working now.

这篇关于尝试导入错误:“useHistory"未从“react-router-dom"导出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆