如何将 props 传递给 react-bootstrap 的 Nav.Link
how to pass props to Nav.Link of react-bootstrap
我正在使用以下导航栏。我想将一些道具传递给 Nav.Link。我不知道如何将 属性 传递给 Nav.Link。还是就像 HTML href="a.html?param=test"?
const Navigation = (props) => {
console.log(props);
return (
<Navbar bg="primary" variant="dark">
<Navbar.Brand href="/">Dating Service</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
<Nav.Link href="/">Home</Nav.Link>
<Nav.Link href="/CreateProfile">Create Profile</Nav.Link>
<Nav.Link href="/ViewProfile">View Profile</Nav.Link>
</Nav>
</Navbar.Collapse>
</Navbar>
)
}
您正在将 props 传递给 Navigation
组件,这没问题;您可以使用 Nav.Link
中的道具,例如:
<Nav.Link href={links[0].url}>{links[0].label}</Nav.Link>
样本js:
import React, { useState } from "react";
import { Navbar, Nav } from "react-bootstrap";
const Navigation = ({ name, links }) => {
return (
<>
<div>
<Navbar bg="primary" variant="dark">
<Navbar.Brand href="/">Dating Service</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
{links.map((val, indx) => {
return (
<Nav.Link key={indx} href={val.url}>
{val.label}
</Nav.Link>
);
})}
</Nav>
</Navbar.Collapse>
</Navbar>
</div>
<h1>Hello {name}!</h1>
</>
);
};
export default Navigation;
在 Reactjs 18.6 中,您可以将道具作为 link 传递,然后可以通过 useLocation() 访问目标页面。下面的例子展示了如何传递 props
import React from 'react';
import { Link } from 'react-router-dom';
import { Nav } from 'react-bootstrap';
const ContactItem = ({ item }) => {
return (
<Nav>
<Nav.Item>
<Nav.Link as={Link}
to={{
pathname: '/َcontactform',
state: { currentContact: item},
}}
>
<i className="far fa-edit"></i>
</Nav.Link>
</Nav.Item>
</Nav>
)}
import React from 'react';
import { useLocation } from 'react-router-dom';
const ContactForm = () => {
let location = useLocation();
const { currentContact} = location.state;
console.log(currentContact)
return ( ... Components ... )
}
我正在使用以下导航栏。我想将一些道具传递给 Nav.Link。我不知道如何将 属性 传递给 Nav.Link。还是就像 HTML href="a.html?param=test"?
const Navigation = (props) => {
console.log(props);
return (
<Navbar bg="primary" variant="dark">
<Navbar.Brand href="/">Dating Service</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
<Nav.Link href="/">Home</Nav.Link>
<Nav.Link href="/CreateProfile">Create Profile</Nav.Link>
<Nav.Link href="/ViewProfile">View Profile</Nav.Link>
</Nav>
</Navbar.Collapse>
</Navbar>
)
}
您正在将 props 传递给 Navigation
组件,这没问题;您可以使用 Nav.Link
中的道具,例如:
<Nav.Link href={links[0].url}>{links[0].label}</Nav.Link>
样本js:
import React, { useState } from "react";
import { Navbar, Nav } from "react-bootstrap";
const Navigation = ({ name, links }) => {
return (
<>
<div>
<Navbar bg="primary" variant="dark">
<Navbar.Brand href="/">Dating Service</Navbar.Brand>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="ml-auto">
{links.map((val, indx) => {
return (
<Nav.Link key={indx} href={val.url}>
{val.label}
</Nav.Link>
);
})}
</Nav>
</Navbar.Collapse>
</Navbar>
</div>
<h1>Hello {name}!</h1>
</>
);
};
export default Navigation;
在 Reactjs 18.6 中,您可以将道具作为 link 传递,然后可以通过 useLocation() 访问目标页面。下面的例子展示了如何传递 props
import React from 'react';
import { Link } from 'react-router-dom';
import { Nav } from 'react-bootstrap';
const ContactItem = ({ item }) => {
return (
<Nav>
<Nav.Item>
<Nav.Link as={Link}
to={{
pathname: '/َcontactform',
state: { currentContact: item},
}}
>
<i className="far fa-edit"></i>
</Nav.Link>
</Nav.Item>
</Nav>
)}
import React from 'react';
import { useLocation } from 'react-router-dom';
const ContactForm = () => {
let location = useLocation();
const { currentContact} = location.state;
console.log(currentContact)
return ( ... Components ... )
}