【发布时间】:2021-03-16 22:39:56
【问题描述】:
我有一个主要使用类基反应组件编写的应用程序,但是我们正在使用 Stripe 实现付费专区功能。
问题是条带使用钩子,它不适用于类基础组件。是否可以将子类基础组件放入父函数基础组件中以实现此目的。如果不将每个组件都重写为函数基础组件,我将如何做到这一点。
每次尝试包含具有类基子级的函数基组件总是会产生此错误:
错误:无效的挂钩调用。 Hooks 只能在函数组件的主体内部调用。
是否有任何变通方法,或者我应该将所有组件重写为功能组件?
使用 react-router-dom 作为查询参数的快速示例,然后将这些参数传递到类基子组件中。
function useQuery() {
return new URLSearchParams(useLocation().search);
}
const App = () => {
let query = useQuery();
return (
<Provider store={store}>
<Router>
<div className="App">
<Navbar />
<Switch>
{/* Public Pages */}
<Route exact path="/" component={Landing} ref={query.get('ref')} />
</Switch>
</div>
</Router>
</Provider>
)
}
export default App;
然后假设落地组件是一个简单的类基组件,它将把prop设置为状态。
【问题讨论】:
-
如果你可以在你正在工作的文件上放一些代码示例,那么可以更好地帮助你。绝对可以将功能组件用作父组件,将类组件用作子组件,
标签: reactjs react-redux react-router react-hooks stripe-payments