抓取URL参数以传递给函数不起作用,但在ReactJS中手动创建变量时起作用
我正在测试使用ReactJS发送事务,我是ReactJS新手,因此试图了解这将如何工作 我有一个URL参数-抓取URL参数以传递给函数不起作用,但在ReactJS中手动创建变量时起作用,reactjs,function,variables,parameters,Reactjs,Function,Variables,Parameters,我正在测试使用ReactJS发送事务,我是ReactJS新手,因此试图了解这将如何工作 我有一个URL参数- www.mysite.com?value=10 我可以使用- const search = window.location.search; const params = new URLSearchParams(search); const value = params.get('value'); 如果我把它记录下来,我会得到正确的值- console.log(value); >
www.mysite.com?value=10
我可以使用-
const search = window.location.search;
const params = new URLSearchParams(search);
const value = params.get('value');
如果我把它记录下来,我会得到正确的值-
console.log(value); > 10
但是我想把“value”变量传递给这个页面上的函数-
const sendNewTransaction: RawTransactionType = {
receiver: "{my address}",
data: "Send",
value: value.valueOf(),
gasLimit: 250000000,
chainID: chainId.valueOf(),
gasPrice,
version,
})
如果我只是为值创建一个新变量,它就可以工作,但在传递URL参数变量时就不行了
const value = "10"; > This works
const value = params.get('value'); > This doesnt work
我得到的错误是-
Object is possibly 'null'. TS2531
所以基本上它是说没有正确的值,因为它说空?这与工作值是字符串有关吗?这可能与您的代码不匹配,但我建议您查看一下 显然你用的是React,我建议你用npm软件包。 它简化了与路由相关的所有操作,您也可以使用以下代码轻松获取URL参数:
import { useParams } from "react-router-dom";
// the component where you need to use the url parameter
function App() {
const { value } = useParams();
useEffect(() => {
console.log("value ", value); <-- will return you param value
}, [value]);
}
// in a router component where you declare your routes
function Router() {
<Route path="/app/:value" exact component={App} />
}
从“react router dom”导入{useParams};
//需要使用url参数的组件
函数App(){
常量{value}=useParams();
useffect(()=>{
console.log(“值”,value);这是因为如果未设置value param,则可以为null。如果检查null,则不应显示错误谢谢,但如果有值集,为什么显示null?我猜我不理解partIt是因为tyescript向您显示它可以为null,从而阻止它运行,如果您不使用TS(纯JS)它会运行得很好,但是如果你不提供参数,它会抛出一个错误啊,好的,是的,谢谢你!谢谢你,这是一个比我使用的更好的方法吗?好得多,你还没有在你的项目中使用react router dom进行路由?你也可以看看这个主题,这个答案这是我做的一个锅炉板示例Wnload,它确实有路线等等,但我在这里努力学习。我会通读你发布的其他主题,谢谢!