【发布时间】:2020-06-19 15:04:44
【问题描述】:
我想做什么:
- 当我点击我的按钮时,即
Navbar.js中的Search,我想在变量urlQuery中分配搜索文本,这样我就可以在Episodes.js组件中将其作为道具传递 - 最终目标是将 urlQuery 从
Navbar.js以某种方式传递给Episodes.js组件,以便我可以查询 REST api
我如何实现所需的行为请帮助
App.js
import React, { useState } from 'react';
import './App.css'
import Episodes from './components/Episodes/Episodes'
import CustomNavbar from './components/Navbar/Navbar'
import Pagination from './components/Pagination/Pagination'
function App() {
const [postsPerPage] = useState(20);
const [currentPage, setCurrentPage] = useState(1);
const url=`https://rickandmortyapi.com/api/episode?page=${currentPage}`
let urlQuery = `https://rickandmortyapi.com/api/episode?name=${SEARCH TEXT HERE}`
const paginate = pageNumber => setCurrentPage(pageNumber);
return (
<div>
<CustomNavbar />
<Episodes
urlQuery={urlQuery}
url={url}
/>
<Pagination
postsPerPage={postsPerPage}
totalPosts={36}
paginate={paginate}
/>
</div>
);
}
export default App;
Navbar.js
import React from 'react';
import Navbar from 'react-bootstrap/Navbar';
import Form from 'react-bootstrap/Form';
import Button from 'react-bootstrap/Button';
import FormControl from 'react-bootstrap/FormControl';
const customNavbar = () => {
return (
<Navbar bg="light" expand="lg">
<Navbar.Brand href="#home">Rick And Morty</Navbar.Brand>
<Form inline>
<FormControl type="text" placeholder="Search" />
<Button>Search</Button>
</Form>
</Navbar>
);
}
export default customNavbar
编辑
根据 Zohaib 的建议,抛出此错误
Failed to compile.
./src/components/Navbar/Navbar.js
Line 14:48: Unexpected use of 'event' no-restricted-globals
Search for the keywords to learn more about each error.
【问题讨论】:
-
您通过 URL 传递数据是否有特定原因?直接从子组件到父组件的通信是否适用于您的用例?
-
你能用外行的话问一下吗?没看懂问题
-
如果网址不变,可以吗?
-
不,它必须改变......
-
糟糕,我误读了这个问题。我的意思是浏览器的 URL,但这无关紧要。给我一分钟,我会试着回答这个问题
标签: javascript reactjs react-hooks