Вам необходимо будет использовать withRouter
HOC с ItemRecipe, поскольку он не получает реквизиты маршрутизатора
const ItemRecipe = ({ recipe }) => {
const { label, image } = recipe.recipe;
return (
<li>
<p> {label} </p>
<img src={image} alt="food" />
<Link to={`/meals/${label}`} >
<p>More information</p>
</Link >
</li>
);
}
export default withRouter(ItemRecipe);
Также вам следует кодировать параметры URL-адреса перед использованием с помощью ссылки со ссылкой enocdeURIComponent
и декодировать это в DetailsRecipe
с использованием decodeURIComponent
<Link to={`/meals/${encodeURIComponenent(label)}`} >
Это делает трюк в Windows:
function getUser() {
return Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME');
}
Следующий код работает для меня вместо события onload с вызовом функции:
var objUserInfo = new ActiveXObject("WScript.network");
document.write(objUserInfo.ComputerName+"<br>");
document.write(objUserInfo.UserDomain+"<br>");
document.write(objUserInfo.UserName+"<br>");
var uname = objUserInfo.UserName;
alert(uname);
<html>
<head>
<script language="javascript">
function GetUserName()
{
var wshell = new ActiveXObject("WScript.Shell");
alert(wshell.ExpandEnvironmentStrings("%USERNAME%"));
}
</script>
</head>
<body OnLoad="GetUserName();">
</body>
</html>
Вы можете использовать интерфейс nsIEnvironment для получения переменной среды USERNAME
.