gpt4 book ai didi

javascript - componentDidMount 未被调用

转载 作者:行者123 更新时间:2023-11-30 15:02:38 26 4
gpt4 key购买 nike

我正在调用 ajax 请求 this.props.getPostListData(this.props.lang) 并出现错误。然后我发现它是 componentDidMount 的罪魁祸首。
我的 componentDidMount 未在 News.jsx 组件中调用,当我将其替换为 componentWillMount - 调用了 ajax 请求。
我使用 ReduxReact Router v4

新闻.jsx

class News extends Component {
componentDidMount() {
this.props.getPostListData(this.props.lang);
}

props: {
urlPrefix: string,
lang: string,
postList: PostListData,
getPostListData: Function
};

render() {
const { postList, urlPrefix } = this.props;
return (
<section className={'news'}>
...
<NewsCards posts={postList} urlPrefix={urlPrefix} />
</section>
);
}
}

const mapStateToProps = state => {
const urlPrefix = getPrefix(state.locale);
const postList = state.postlistData ? state.postlistData : [];
const lang = getLang(state.locale);
return { postList, lang, urlPrefix };
};

const mapDispatchToProps = (dispatch: Function) => ({
getPostListData(locale) {
dispatch(getPostList(locale));
}
});

export default connect(mapStateToProps, mapDispatchToProps)(News);

路由.jsx

const Routes = ({ urlPrefix }: { urlPrefix: string }) => (
<BrowserRouter>
<div className="app">
<Route render={props => <Header urlPrefix={urlPrefix} {...props} />} />
<Switch>
<RootRouter exact
path={'/:lang(en|ru)?'} urlPrefix={urlPrefix} component={Landing} />
<Route exact path={'/:lang(en|ru)?/news'} component={News} />
<Route component={FourOhFour} />
</Switch>
<Footer />
</div>
</BrowserRouter>
);

const mapStateToProps = state => ({ urlPrefix: getPrefix(state.locale) });
export default connect(mapStateToProps)(Routes);

最佳答案

如果我替换 NewsCards 组件:

<NewsCards posts={postList} urlPrefix={urlPrefix} />

<pre><code>{JSON.stringify(postList)}</code></pre>

一切正常。所以问题出在 NewsCards 组件中。我需要更精确地检查它。

关于javascript - componentDidMount 未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46279324/

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