reactjs - 当数据来自消费者时,如何导航到动态生成的 url?
问题描述
我通过 React 上下文提供者和消费者在父组件 ( App
) 和它的子组件 () 之间共享数据。MyClass
子组件接收到一些数据,需要将其发送到服务器以获取相应的 URL,然后使用generateLink(context)
以下代码导航到它。
仅在 generateLink 返回响应并导航到该链接后,如何才能启用该按钮?Go to page
import React from 'react'
import { AppContext } from './MainContent';
class MyClass extends React.Component {
generateLink(context){
// Access to db, get the url, and only then navigate to the url
// The Api call is working, just removed it for space.
}
render() {
return (
<AppContext.Consumer>
{context => (
<div className="container">
{context.chosenItems.map((item) =>
<div key={item} className="combination-object">
<button>Item : {item} </button>
</div>
)}
<button onClick={this.generateLink.bind(this, context)}>
Go to page
</button>
</div>
)}
</AppContext.Consumer>
)
}
}
export default MyClass
我创建了一个路由器和一些路由,例如<Route path="/:uniqueUrl" exact component={MyPage} />
还有一个 MyPage 组件,例如:
function MyPage({match}){
React.useEffect(() => {
console.log(match)
})
return(
<div>
<h1>combination page</h1>
</div>
)
}
export default MyPage
我怎样才能让它发生?
解决方案
首先,您需要将 react-router 连接到您的MyClass
组件。你可以使用useHistory
钩子来做到这一点。https://reacttraining.com/react-router/web/api/Hooks/usehistory。
从后端返回您的 http 请求后,您可以调用history.push('/' + results.uniqueUrl)
. 结果是您的 API 调用的响应。
推荐阅读
- microsoft-dynamics - MS-Dynamics 2016/365 搜索中的 PDF 索引
- python - 问:ValueError: unknown type object python 是什么意思?
- python - 我正在 python 中显示时间,但它没有打印我想要的内容
- git - Windows 上的 npm 安装因 git 存储库而失败
- jquery - ClickFunnels - 如何将我的自定义结帐表单集成到 ClickFunnels?
- javascript - 如何将 Service Worker 任务置于后台?
- python - 识别与前几天相比的缺失值并创建新的数据框 Pandas
- django - 如何发布预填充的禁用 ModelMultipleChoiceField?
- stripe-payments - 如何处理“不完整”的试用订阅
- javascript - 在递归 DOM 结构中查询特定子节点