Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
抓取URL参数以传递给函数不起作用,但在ReactJS中手动创建变量时起作用_Reactjs_Function_Variables_Parameters - Fatal编程技术网

抓取URL参数以传递给函数不起作用,但在ReactJS中手动创建变量时起作用

抓取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); >

我正在测试使用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); > 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,它确实有路线等等,但我在这里努力学习。我会通读你发布的其他主题,谢谢!