reactjs - 反应路由器重定向返回空白页面
问题描述
有人可以解释为什么我的重定向返回一个空白页。URL 会更新但componentDidMount
不会触发,并且呈现的页面完全空白。
小路:App.js
class App extends Component {
componentDidMount() {
store.dispatch(loadUser());
}
render() {
return (
<Provider store={store}>
<Router>
<Switch>
<Route exact path="/" render={() => <Redirect to="/login" />} />
<PrivateRoute exact strict path="/mypage/:id">
<POForm />
</PrivateRoute>
</Switch>
</Router>
</Provider>
);
}
}
小路:PrivateRoute.js
const PrivateRoute = ({ children, auth, ...rest }) => {
if (auth.isLoading) return null;
return (
<Route
{...rest}
exact
strict
render={({ location }) =>
auth.isAuthenticated ? (
children
) : (
<Redirect
to={{
pathname: '/login',
state: {
from: location
}
}}
/>
)
}
/>
);
};
小路:POForm.js
class POForm extends React.Component {
constructor(props) {
super(props);
this.state = {
isLoading: true,
newId: ''
};
this.createNewPurchaseOrder = this.createNewPurchaseOrder.bind(this);
}
componentDidMount() {
axios
.get(`${process.env.REACT_APP_API_URL}/get/po`, {})
.then((res) => {
const purchaseOrder = middlewarePurchaseOrder(res.data);
purchaseOrder.isLoading = false;
this.setState(purchaseOrder);
})
.catch((err) => {
console.log('err', err);
});
}
createNewPurchaseOrder() {
axios
.post(`${process.env.REACT_APP_API_URL}/new/po`)
.then((res) => {
const po = res.data;
po.newId = res.data._id;
this.setState(po);
})
.catch((err) => {
console.log('err', err);
});
}
render() {
if (this.state.newId) {
return <Redirect to={`/mypage/${this.state.newId}`} />;
}
if (this.state.isLoading) {
return <p>Loading...</p>;
}
return (
<div>
<button
type="button"
onClick={() => {
this.createNewPurchaseOrder();
}}
>
createNewPurchaseOrder
</button>
<p>Page has loaded.</p>
</div>
);
}
}
解决方案
推荐阅读
- apache - htaccess 尾部斜杠仅适用于一个 URL
- amazon-web-services - EMR 6.1.0 上的默认 Python3 内核不在我的集群上?
- python - FOREIGN KEY 约束失败 Django 3.1.1
- javascript - 想要更改复杂的 Json 结构,我需要在 Javascript 中更改它的数组
- angular - Angular:属性的顺序是否重要,我不是在谈论 HTML 属性?
- bash - 如何自动打开许多文件到 zsh 或 bash 上的给定行
- java - 用户单击 autoCompleteEditText 时清除 drawableLeft(非背景)
- javascript - 如何使用 LitElement 将道具从父母发送给孩子
- c# - 是否可以根据枚举输入返回泛型类?
- excel - VBA Xmatch 函数返回运行时错误 1004