错误:[Elements]不是<Route>
组件。<Routes>
的所有子组件必须是<Route>
或<React.Fragment>
import { Elements } from "@stripe/react-stripe-js";
import { loadStripe } from "@stripe/stripe-js";
<Elements stripe={loadStripe(stripApikey)}>
<Route
path="/process/payment"
element={
<ProtectedR>
<Payments />
</ProtectedR>
}
/>
</Elements>
我包裹所有路线一样,<Route path="/process/payment" element={<ProtectedR ><Elements stripe={loadStripe(stripApikey)}><Payments /></Elements></ProtectedR>} />
,但在其给我的支付文件错误× Error: Could not find Elements context; You need to wrap the part of your app
3条答案
按热度按时间c8ib6hqw1#
React路由器,版本6
<Route>
组件,所以它不能 Package 在<Route>
内。这意味着Elements应该放置在<Route>
之外。<Routes>
的所有子组件必须是<Route>
或因此,如果存在
<Route>
组件,则必须将其 Package 在<Routes>
周围。上述语句会导致以下语法(在您的情况下,存在受保护路由):
r1zk6ea12#
qnakjoqk3#
这个错误很明显:在
<Router>
内,所有直接子节点必须是路由。将
<Elements>
Package 移动到element={...}
内部。