如何将值onClick从不同组件分配给React中的另一个组件

菲尔

我想做的事 :

  • 当我点击我的按钮,即SearchNavbar.js我想要分配变量中的搜索文本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

编辑

根据佐伊布的建议,抛出此错误

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.   
拉迪胡克

App.js

import React, { useState, useEffect } 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 [userSearchValue, setUserSearchValue] = useState('');

  const [url, setUrl] = useState(``);
  const [urlQuery, setUrlQuery] = useState(``)

  useEffect(() => {
    setUrl(`https://rickandmortyapi.com/api/episode?page=${currentPage}`)
  }, [currentPage]);

  useEffect(() => {
    setUrlQuery(`https://rickandmortyapi.com/api/episode?name=${userSearchValue}`)
  }, [userSearchValue])

  const paginate = pageNumber => setCurrentPage(pageNumber);

  const handleButtonClick = (searchValue) => {
      setUserSearchValue(searchValue);
  }

  return (
    <div>
      <CustomNavbar
      onButtonClick={handleButtonClick}
      />
      <Episodes
      urlQuery={urlQuery}
      url={url}
      />
      <Pagination
        postsPerPage={postsPerPage}
        totalPosts={36}
        paginate={paginate}
      />
    </div>
  );
}

export default App;

Navbar.js

import React, { useState } 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 = ({ onButtonClick }) => {

    const [searchValue, setSearchValue] = useState('');

  return (
    <Navbar bg="light" expand="lg">
      <Navbar.Brand href="#home">Rick And Morty</Navbar.Brand>
      <Form inline>
        <FormControl type="text" placeholder="Search" value={searchValue} onChange={(e) => setSearchValue(e.target.value)} />
        <Button onClick={() => onButtonClick(searchValue)}>Search</Button>
      </Form>
    </Navbar>
  );
}
export default customNavbar

这里的重要部分是将handleButtonClick函数传递给子组件(导航栏)。这样,您可以随时在子组件中调用该父函数(即,当用户单击“提交”按钮时)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Gatsby中的children变量是什么?如何将其分配给另一个组件?

来自分类Dev

HTML - 如何将文本值分配给另一个属性的值?

来自分类Dev

如何将公式的值(包含变量)分配给另一个变量

来自分类Dev

如何将Angular @Input值分配给另一个变量并填充到子代中?

来自分类Dev

如何将文本框值分配给 wpf 中的另一个类

来自分类Dev

如何将一个函数返回的值分配给另一个函数

来自分类Dev

如何将一个枚举值强制转换/分配给另一个枚举

来自分类Dev

如何将值从一个哈希集分配给另一个?

来自分类Dev

如何将一个JavaScript文件中的变量分配给另一个JS File?

来自分类Dev

如何将一个数组中的值分配给另一个数组n次

来自分类Dev

JavaScript:如何将button元素的值分配给另一个div元素?

来自分类Dev

如何从组件中获取变量值并将其分配给 vuejs 中另一个组件中的变量

来自分类Dev

如何将变量列表分配给另一个列表

来自分类Dev

如何将包含空格的变量分配给 KSH 中的另一个变量

来自分类Dev

如何将一个模型的字段的值分配给另一模型的字段?

来自分类Dev

如何将一个char中的值分配给一个指针?

来自分类Dev

React-如何将API数据从一个组件传递到另一个js文件中的另一个组件?

来自分类Dev

将产品属性值分配给magento中的另一个产品属性

来自分类Dev

将列表分配给另一个类中现有列表的值

来自分类Dev

如何将状态className变量传递给React中的另一个组件

来自分类Dev

如何将表单输入字段传递给 React 中的另一个组件?

来自分类Dev

将一个数组中的值分配给另一个数组中的值

来自分类Dev

React-Native:如何将组件中的项目与另一个组件中的项目绑定?

来自分类Dev

如何将特定属性从一个对象分配给另一个

来自分类Dev

如何将组件名称从另一个组件的对象传递到React Router Dom中的Route?

来自分类Dev

如何将组件作为道具传递给 react js 中的另一个组件?

来自分类Dev

如何将一个React-Admin组件嵌入另一个组件中;多个管理组件

来自分类Dev

Python将值从一个变量分配给另一个

来自分类Dev

在for循环Python中的if语句中,将一个键的值分配给另一个键

Related 相关文章

  1. 1

    Gatsby中的children变量是什么?如何将其分配给另一个组件?

  2. 2

    HTML - 如何将文本值分配给另一个属性的值?

  3. 3

    如何将公式的值(包含变量)分配给另一个变量

  4. 4

    如何将Angular @Input值分配给另一个变量并填充到子代中?

  5. 5

    如何将文本框值分配给 wpf 中的另一个类

  6. 6

    如何将一个函数返回的值分配给另一个函数

  7. 7

    如何将一个枚举值强制转换/分配给另一个枚举

  8. 8

    如何将值从一个哈希集分配给另一个?

  9. 9

    如何将一个JavaScript文件中的变量分配给另一个JS File?

  10. 10

    如何将一个数组中的值分配给另一个数组n次

  11. 11

    JavaScript:如何将button元素的值分配给另一个div元素?

  12. 12

    如何从组件中获取变量值并将其分配给 vuejs 中另一个组件中的变量

  13. 13

    如何将变量列表分配给另一个列表

  14. 14

    如何将包含空格的变量分配给 KSH 中的另一个变量

  15. 15

    如何将一个模型的字段的值分配给另一模型的字段?

  16. 16

    如何将一个char中的值分配给一个指针?

  17. 17

    React-如何将API数据从一个组件传递到另一个js文件中的另一个组件?

  18. 18

    将产品属性值分配给magento中的另一个产品属性

  19. 19

    将列表分配给另一个类中现有列表的值

  20. 20

    如何将状态className变量传递给React中的另一个组件

  21. 21

    如何将表单输入字段传递给 React 中的另一个组件?

  22. 22

    将一个数组中的值分配给另一个数组中的值

  23. 23

    React-Native:如何将组件中的项目与另一个组件中的项目绑定?

  24. 24

    如何将特定属性从一个对象分配给另一个

  25. 25

    如何将组件名称从另一个组件的对象传递到React Router Dom中的Route?

  26. 26

    如何将组件作为道具传递给 react js 中的另一个组件?

  27. 27

    如何将一个React-Admin组件嵌入另一个组件中;多个管理组件

  28. 28

    Python将值从一个变量分配给另一个

  29. 29

    在for循环Python中的if语句中,将一个键的值分配给另一个键

热门标签

归档