单击列表项时如何将数据从子级传递到父级

游戏区

我正在尝试将单击元素的值传递给标题组件。我是用React-bootstrap提供的模式完成的。父组件(标题)应接收单击的元素的值(在子组件中),并显示在位置(状态)中。我已经花了太多时间了。

import React, {useState} from 'react'
import { Navbar, Container, Button } from 'react-bootstrap'
import {
  faMapMarkerAlt, 
  faAngleDown
  } from "@fortawesome/free-solid-svg-icons";
  import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import LocationModal from '../LocationModal/LocationModal';



export default function Header () {
    const [modalShow, setModalShow] = useState(false)
    const [location, setLocation] = useState('Lagos')
    const handleCallback = () => {
        setLocation({location})
     }
     
    return (
        <>
        <Navbar expand="lg" variant="light" bg="light">
            <Container>
                <Navbar.Brand href="/">Navbar</Navbar.Brand>
                <Button variant="none" onClick={() => setModalShow(true)} className="px-2 d-inline-flex">
                    <span className="ml-1"><FontAwesomeIcon icon={faMapMarkerAlt} /></span>
                    <span className="ml-1">{location}</span>
                    <span className="ml-1"><FontAwesomeIcon icon={faAngleDown} /></span>
                </Button>
                
            </Container>
        </Navbar>
        <LocationModal 
            show={modalShow}
            onHide={() => setModalShow(false)}
            parentcallback={handleCallback} 
        />
        </>
    )
}

位置模态

如您所见,我尝试为从子元素(locationModal)获得的值编写一个回调函数,以便可以将其传递并显示在父组件(Header)中。

import React from 'react'
import { Modal } from 'react-bootstrap'

export default function LocationModal(props) {
    const locations = [
        {
            id: 1,
            location: 'Lagos'
        },
        {
            id: 2,
            location: 'Abuja'
        }
    ]
   const handleClick = (value) => {
       props.parentcallback(value)
   }
    return (
      <Modal
        {...props}
        size="lg"
        aria-labelledby="contained-modal-title-vcenter"
        centered
      >
        <Modal.Header closeButton className="border-bottom-0">
          <Modal.Title id="contained-modal-title-vcenter"></Modal.Title>
        </Modal.Header>
        <Modal.Body>
          <ul className="d-flex flex-column align-items-center list-unstyled">
              <h1>Choose Your Location</h1>
              {
                  locations.map(item => {
                      return <li 
                                className="w-75 p-2 m-2 border-1 text-white text-center bg-gray-300 cursor-pointer" 
                                key={item.id}
                                onClick={() => handleClick(item.location)}
                                value={item.location}
                                >
                                {item.location}
                            </li>
                  })
              }
          </ul>
        </Modal.Body>
    
      </Modal>
    );
  }
  

非常感谢。

布扎托

在您处,handleCallback您将状态设置为带有location的对象,但是您的位置状态应该是字符串。您还缺少位置参数:

const handleCallback = () => { // you are missing location param
    setLocation({location}) // location was a string now is an object
 }

它应该像这样:

const handleCallback = (location) => setLocation(location)

但这实际上是多余的,已经做handleCallback了相同的事情setLocation删除handleCallback代码,然后传递setLocationparentcallback

    <LocationModal 
        show={modalShow}
        onHide={() => setModalShow(false)}
        parentcallback={setLocation} 
    />

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将数据从子级传递到父级视图控制器?迅速

来自分类Dev

在反应中如何将数据从子级传递到父级?

来自分类Dev

单击父组件上的按钮时如何将数据从子组件传递到父组件

来自分类Dev

仅在加载时将数据从子级传递到父级,而无需事件,这在 vue 世界中可能吗?

来自分类Dev

JavaFX将值从子级传递到父级

来自分类Dev

将值从子级传递到父级组件

来自分类Dev

React Typescript:将值从子级传递到父级

来自分类Dev

我应该使用Redux存储将数据从子级传递到父级吗?

来自分类Dev

将数据从子级汇总到父级以进行绑定

来自分类Dev

如何将状态真或假从子级传递给父级 - React

来自分类Dev

AngularJS - 如何通过嵌套(自定义)指令从子级到父级传递数据

来自分类Dev

如何将触摸事件从子级重定向到父级布局?

来自分类Dev

如何将触摸事件从子级重定向到父级布局?

来自分类Dev

如何在Vuejs中从子级到父级$emit以重置数据列表

来自分类Dev

如何使用钩子从数据库登录时将数据从子级更新为父级

来自分类Dev

如何将状态从模态中的列表选择传递到SwiftUI中的父级

来自分类Dev

如何将数据从TabBarView父级传递到选项卡?

来自分类Dev

仅在单击父级列表项时切换

来自分类Dev

如何将数据从孩子传递给父母?当父级基于类而子级基于功能时

来自分类Dev

使用方法$ emit()在Vue.js中将数据从子级传递到父级到父级

来自分类Dev

如何将数据从内容脚本传递到页面级?

来自分类Dev

如果父级列表项中有子级,如何将类添加到链接中?

来自分类Dev

如何将状态从子级传递到应用程序组件

来自分类Dev

React v16 –通过包装器组件将引用从子级传递到父级

来自分类Dev

使用挂钩将状态从子级传递到父级-React

来自分类Dev

如何轻松地将数据从子级传递到reactjs中的根目录?

来自分类Dev

在React中,如何正确地将输入值从子级传递给父级

来自分类Dev

将数据从子级发送到父级 React

来自分类Dev

如何将值从子组件传递到父组件

Related 相关文章

  1. 1

    如何将数据从子级传递到父级视图控制器?迅速

  2. 2

    在反应中如何将数据从子级传递到父级?

  3. 3

    单击父组件上的按钮时如何将数据从子组件传递到父组件

  4. 4

    仅在加载时将数据从子级传递到父级,而无需事件,这在 vue 世界中可能吗?

  5. 5

    JavaFX将值从子级传递到父级

  6. 6

    将值从子级传递到父级组件

  7. 7

    React Typescript:将值从子级传递到父级

  8. 8

    我应该使用Redux存储将数据从子级传递到父级吗?

  9. 9

    将数据从子级汇总到父级以进行绑定

  10. 10

    如何将状态真或假从子级传递给父级 - React

  11. 11

    AngularJS - 如何通过嵌套(自定义)指令从子级到父级传递数据

  12. 12

    如何将触摸事件从子级重定向到父级布局?

  13. 13

    如何将触摸事件从子级重定向到父级布局?

  14. 14

    如何在Vuejs中从子级到父级$emit以重置数据列表

  15. 15

    如何使用钩子从数据库登录时将数据从子级更新为父级

  16. 16

    如何将状态从模态中的列表选择传递到SwiftUI中的父级

  17. 17

    如何将数据从TabBarView父级传递到选项卡?

  18. 18

    仅在单击父级列表项时切换

  19. 19

    如何将数据从孩子传递给父母?当父级基于类而子级基于功能时

  20. 20

    使用方法$ emit()在Vue.js中将数据从子级传递到父级到父级

  21. 21

    如何将数据从内容脚本传递到页面级?

  22. 22

    如果父级列表项中有子级,如何将类添加到链接中?

  23. 23

    如何将状态从子级传递到应用程序组件

  24. 24

    React v16 –通过包装器组件将引用从子级传递到父级

  25. 25

    使用挂钩将状态从子级传递到父级-React

  26. 26

    如何轻松地将数据从子级传递到reactjs中的根目录?

  27. 27

    在React中,如何正确地将输入值从子级传递给父级

  28. 28

    将数据从子级发送到父级 React

  29. 29

    如何将值从子组件传递到父组件

热门标签

归档