So verwenden Sie onClick zum Übergeben von Daten in React Hooks
P粉615886660
2023-08-31 13:43:40
<p>Wie übergebe ich Daten von der Komponente <code>blogItem.js</code> an die Komponente <code>blogDetails.js</code> Die blogItem-Komponente wird jedoch in die Home.js-Komponente importiert. Sagen Sie mir bitte, wo soll ich die Klickaktion hinzufügen? Kann jemand ein Beispiel nennen? </p>
<p>CodeSandboX-Link
https://codesandbox.io/s/gallant-water-5bmueq?file=/src/blogItem.js:0-1876</p>
<pre class="brush:php;toolbar:false;">// App.js
import { BrowserRouter, Route, Routes, Switch } aus „react-router-dom“;
Home importieren von „./src/Home“;
BlogItem aus "./src/blogItem" importieren;
Funktion App() {
zurückkehren (
<div className="App">
<BrowserRouter>
<Routen>
<Route path="/" element={<Home />}></Route>
<Route path="/blogItem" element={<BlogItem />}></Route>
</Routen>
</BrowserRouter>
</div>
);
}
Standard-App exportieren;
//Home.js
import "./styles.css";
import React, { useState, useEffect, useCallback } aus „react“;
BlogItem aus "./blogItem" importieren;
const Home = (props) =>
const [blogItem, setBlogItem] = useState(props);
useEffect(() => {
setBlogItem(props);
}, [Requisiten]);
zurückkehren (
<div id="App">
<BlogItem />
</div>
);
};
Standard-Home exportieren;
// BlogItem.js
import "./styles.css";
import React, { useState, useEffect, useCallback } aus „react“;
const blogData = [
{
ID: 1,
Datum: "25. Januar 2023",
Foto: "https://picsum.photos/80",
Überschrift: „Cypress-Setup-Blog“,
BlogDetails:
„Beste Überschrift hier hinzugefügt.“ Die relevantesten Daten hier hinzugefügt. Größter aller Zeiten. Es wäre keine gute Idee, immer hier zu spielen."
},
{
ID: 2,
Datum: "22. Jan. 2022",
Foto: "https://picsum.photos/80",
Überschrift: „Zustandsdetails reagieren“,
BlogDetails:
„Beste Überschrift hier hinzugefügt.“ Die relevantesten Daten hier hinzugefügt. Größter aller Zeiten. Es wäre keine gute Idee, immer hier zu spielen."
}
];
const BlogItem = ({ id, date, photo, heading, blogDetails }) => {
const [searchResults, setSearchResults] = useState(blogData);
const [state, setState] = useState({ id, date, photo, heading, blogDetails });
const Columns = () => (
<div className="blogItems">
<div className="row">
<div className="blogArea">
{searchResults.map(({ id, date, photo, heading, blogDetails }) => (
<a key={id}>
<div className="blogImageSection">
<img alt="id" src={photo} />
<div key={id} className="dataArea">
<span className="dataDate">{date}</span>
<span className="tags">cypress</span>
<h3>{heading}</h3>
<p>
Beste Überschrift hier hinzugefügt. Die relevantesten Daten hier hinzugefügt.
Größter aller Zeiten. Es wird keine gute Idee sein, immer hier zu spielen.
</p>
<a href="_blank" className="readmoreLink">
Weiterlesen →
</a>
</div>
</div>
</a>
))}
</div>
</div>
</div>
);
return <Columns {...state} />;
};
Standard-BlogItem exportieren;</pre>
<p>// BlogDetails.js</p>
<pre class="brush:php;toolbar:false;">import React from "react";
const BlogDetails = () => {
zurückkehren (
<div id="App">
<div className="blogDetailsSection">
<div className="row">
<div className="individual-blogs">
<h2>ddd</h2>
<p>Blogdetails</p>
<vor>
<code>const data = []; data.push("soccer");</code>
</pre>
</div>
</div>
</div>
</div>
);
};
Standard-BlogDetails exportieren;</pre></p>
首先,在index.js文件中创建
browserRouter
,并从app.js文件中移除它,并为BlogDetailscomponent
创建一个Route
:然后你需要安装'react-router-dom'包。
在BlogItem.js文件中导入
useNavigate
:现在你可以给你想要点击的
element
添加onClick
,以便重定向到/blogDetails
,例如:最后,在BlogDetails.js文件中:
你可以像这样访问传递的数据: