小编Sha*_*ade的帖子

当参数更改时 useEffect 不会重新运行

我的导航栏上有 6 个链接(家庭、世界、政治、商业、技术、体育),我只希望“部分”参数成为这些值之一。如果输入“section”的其他值,则会显示“找不到页面”消息。

所有 6 个链接都工作正常。单击导航栏上的另一个链接时,useEffect 会重新运行。但是,如果我输入无效的部分参数,它首先显示“找不到页面”消息,然后我单击导航栏上的链接,useEffect 不会重新运行并且应用程序崩溃。

我无法弄清楚为什么 useEffect 不重新运行,我确实指定了 props.match.params.section 作为其依赖项。

const Headlines = (props) => {
    useEffect(() => {
        console.log(props.match.params.section);
        props.getArticles(props.match.params.section === 'sports' ? 'sport' : props.match.params.section);
    }, [props.match.params.section]);
    if (props.match.params.section !== undefined &&
        props.match.params.section !== 'world' &&
        props.match.params.section !== 'politics' &&
        props.match.params.section !== 'business' &&
        props.match.params.section !== 'technology' &&
        props.match.params.section !== 'sports') {
        return (
            <Container fluid>
                <h1>The page cannot be found</h1>
            </Container>
        );
    }
    return (
        props.news.loading ?
            <Spinner/>
            :
            <Container fluid className={classes.headlines}>
                {props.news.articles.map((article) => …
Run Code Online (Sandbox Code Playgroud)

reactjs use-effect

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

标签 统计

reactjs ×1

use-effect ×1