I used URLSearchParams() to extract data from my query parameters
我的查询参数看起来像这样/?dt=Sample&ut=Sample%20Data
ContractView.tsx
import React, { ReactElement, useEffect, useState } from 'react'
import Viewer from './Viewer/Viewer'
import getContract from '../../services/getContract'
const ContractView = (): ReactElement => {
const [contractFile, setContractFile] = useState<string>('')
let dt: any
let ut: any
if (typeof window !== `undefined`) {
const myKeys = window.location.search
const urlParams = new URLSearchParams(myKeys)
dt = urlParams.get('dt')
ut = urlParams.get('ut')
}
useEffect(() => {
const fetchData = async () => {
const result = await getContract({
document: dt,
usage: ut,
})
if (result) {
setContractFile(`${process.env.GATSBY_API_URL}/${result}`)
}
}
fetchData()
}, [])
return <Viewer pdfFile={contractFile} />
}
export default ContractView
getContract.ts 只是一个从 API 端点获取数据的导入函数
Viewer.tsx 只是一个带有 react-pdf 的组件,用于渲染从 getContract 获取的 PDF 文档资源
我总是得到这个错误
I used URLSearchParams() to extract data from my query parameters