首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用react传递道具(img url )-模态(react js)

使用react传递道具(img url )-模态(react js)
EN

Stack Overflow用户
提问于 2022-01-12 22:33:01
回答 1查看 505关注 0票数 2

我需要传递图像url到模态在反应js。例如,在单击"imgae附件“中的项目时,它会显示所选项目的模式和图像。但是它不能通过传递img={item.document}来显示我的图像数据,下面是我的代码:

DepositRecord.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { Component } from "react";
import { Table } from "react-bootstrap";
import { Button, ButtonToolbar } from "react-bootstrap";
import { AddDepositModal } from "./AddDepositModal";

export class DepositRecord extends Component {
  constructor(props) {
    super(props);
    this.state = { deps: [], addModalShow: false };
  }

  componentDidMount() {
    this.refershList();
  }

  refershList() {
    this.setState({
      deps: [
        { id: 9, userId: "12", document: "img1_url" },
        { id: 8, userId: "16", document: "img2_url" },
        { id: 6, userId: "13", document: "img3_url" },
        { id: 4, userId: "1", document: "img4_url" },
        { id: 2, userId: "1", document: "img5_url" }
      ]
    });
  }

  render() {
    const { deps } = this.state;

    let addModalClose = () => this.setState({ addModalShow: false });

    return (
      <div>
        <h3>Customer's Deposit Record</h3>
        <br />

        <Table className="mt-4" striped bordered hover size="sm">
          <thead>
            <tr>
              <th>Deposit id</th>
              <th>user id</th>
              <th>img attachment</th>
            </tr>
          </thead>
          <tbody>
            {deps.map((item) => (
              <tr key={item.id}>
                <td>{item.id}</td>
                <td>{item.userId}</td>
                <td>
                  <ButtonToolbar>
                    <Button
                      variant="primary"
                      onClick={() => this.setState({ addModalShow: true })}
                    >
                      image attachment
                    </Button>

                    <AddDepositModel
                      show={this.state.addModalShow}
                      onHide={addModalClose}
                      img={item.document}
                    />
                  </ButtonToolbar>
                </td>
              </tr>
            ))}
          </tbody>
        </Table>
      </div>
    );
  }
}

export default DepositRecord;

AddDepositModal.js <-- Madal组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { Component } from 'react';
import { Modal, Button, Row, Col, Form } from 'react-bootstrap';

export class AddDepositModal extends Component {
    constructor(props) {
        super(props);
    }

    render() {
        return (

            <Modal
                
                {...this.props}
                size="lg"
                aria-labelledby="contained-modal-title-vcenter"
                centered
            >
                <Modal.Header closeButton>
                    <Modal.Title id="contained-modal-title-vcenter">
                    Deposit Record
                    </Modal.Title>
                </Modal.Header>
                <Modal.Body>
                <img src={this.props.img} width={700} height={1100}/>
                </Modal.Body>
                <Modal.Footer>
                    <Button variant="danger" onClick={this.props.onHide}>Close</Button>
                </Modal.Footer>
            </Modal>


        );

    }
}
export default AddDepositModal;

我的问题是:我无法将图像URL传递给Modal组件,并且在这段代码中没有更好的解决方法。

请帮助我,如果任何包括,改变或完整的解决方案,以完美地理解需求将是非常伟大的。事先非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-01-12 23:26:46

你好,这是你的解决方案

DepositRecord.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import React, { useEffect, useState } from "react";
import { Button, ButtonToolbar, Table } from "react-bootstrap";
import AddDepositModal from "./AddDeposiModal";

const DepositRecord = () => {
  const [deps, setDeps] = useState([]);
  const [visibleModal, setVisibleModal] = useState(false);
  const [depImage, setDepImage] = useState(null);

    useEffect(() => {
    loadDepsHandler();
    }, []);

  const loadDepsHandler = () => {
    const myRequest = new Request("https://randomuser.me/api/", {
      method: "GET",
      cache: "default",
    });
    debugger;
    fetch(myRequest)
      .then((res) => res.json())
      .then((data) => {
        const { results } = data;
        setDeps(results);
      })
      .catch((err) => console.log(err));
  };

  const setDepHandler = (id) => {
    const dep = deps.find((a) => a.id.value === id);
    debugger;
    setDepImage(dep.picture.large);
    setVisibleModal(true);
  };

  return (
    <div>
      <h3>Customer's Deposit Record</h3>
      <br />

      <Table className="mt-4" striped bordered hover size="sm">
        <thead>
          <tr>
            <th>Deposit id</th>
            <th>user name</th>
            <th>img attachment</th>
          </tr>
        </thead>
        <tbody>
          {deps.map((item) => (
            <tr key={item.id.name}>
              <td>{item.id.name}</td>
              <td>{item.value}</td>
              <td>
                <ButtonToolbar>
                  <Button
                    variant="primary"
                    onClick={() => setDepHandler(item.id.value)}
                  >
                    image attachment
                  </Button>
                </ButtonToolbar>
              </td>
            </tr>
          ))}
        </tbody>
      </Table>
      {visibleModal && (
        <AddDepositModal
          show={visibleModal}
          onHide={() => setVisibleModal(false)}
          image={depImage}
        />
      )}
    </div>
  );
};

export default DepositRecord;

AddDepositModal.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 import React from "react";
 import { Button, Modal } from "react-bootstrap";

 const AddDepositModal = ({ show, onHide, image }) => {
  return (
    <Modal show={show} onHide={onHide}>
      <Modal.Header closeButton>
        <Modal.Title id="contained-modal-title-vcenter">
          Deposit Record
        </Modal.Title>
      </Modal.Header>
      <Modal.Body>
        <img src={image} width={700} height={1100} alt={image} />
      </Modal.Body>
      <Modal.Footer>
        <Button variant="danger" onClick={onHide}>
          Close
        </Button>
      </Modal.Footer>
    </Modal>
  );
};
export default AddDepositModal;

异步调用添加。这个API是公开的,所以需要一些时间才能得到结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70692322

复制
相关文章
容纳有状态的应用程序
像Docker Engine这样的应用程序容器技术提供了底层应用程序组件的基于标准的打包和运行时的管理。
QiqiHe
2018/01/11
2.6K0
Kubernetes 上运行有状态应用的最佳实践
在过去的几年间,社区意识到在容器中运行有状态工作负载的价值,而且像 Kubernetes 这样的编排器引入了必要的特性。
深度学习与Python
2022/06/13
9920
Kubernetes 上运行有状态应用的最佳实践
揭秘有状态服务上 Kubernetes 的核心技术
之前在中通负责过缓存平台的建设工作,当时的缓存系统使用搜狐 TV 开源的 CacheCloud 缓存服务平台进行托管,但随着公司业务发展,随着而来的是资源隔离、集群访问权限粒度、资源不均衡、仅支持 Redis 类型的集群等问题,为了解决公司当下使用缓存的痛点,当时决定构建下一代缓存服务平台,它是基于 Kubernetes Operator 自动化部署与运维的思想,当时还写下了一篇文章:「中通缓存服务平台基于 Kubernetes Operator 的服务化实践」。
张乘辉
2021/07/14
1.1K0
揭秘有状态服务上 Kubernetes 的核心技术
唐聪,腾讯云资深工程师,极客时间专栏《etcd实战课》作者,etcd活跃贡献者,主要负责腾讯云大规模K8s/etcd平台、有状态服务容器化、在离线混部等产品研发设计工作。 背景 随着 Kubernetes 成为云原生的最热门的解决方案,越来越多的传统服务从虚拟机、物理机迁移到 Kubernetes,各云厂商如腾讯自研上云也主推业务通过Kubernetes来部署服务,享受 Kubernetes 带来的弹性扩缩容、高可用、自动化调度、多平台支持等益处。然而,目前大部分基于 Kubernetes 的部署的服务都是
腾讯云原生
2022/04/14
9770
揭秘有状态服务上  Kubernetes 的核心技术
React的无状态和有状态组件
众所周知,React是一个专注于View层的前端框架,组件也】是React核心理念之一,一个完整的应用将由一个个独立的组件拼装而成,组件也是React最基础的一部分,学习React就需要先学习组件。
xiangzhihong
2022/11/30
1.5K0
有状态和无状态对象
这个概念在多线程中一直被提及,实际上很简单。 1.有状态就是有数据存储功能。有状态对象(Stateful Bean),就是有实例变量的对象,可以保存数据,是非线程安全的。在不同方法调用间不保留任何状态。
潇洒
2019/07/02
1.2K0
有状态和无状态组件
组件是自我维持的、独立的微实体,其描述了UI的一部分,可以将应用程序的UI拆分为较小的组件,其中每个组件都有自己的代码、结构和API,简单来说组件允许你将UI拆分为独立可复用的代码片段,并对每个片段进行独立构思。
WindRunnerMax
2021/01/05
1.1K0
在Kubernetes上运行有状态应用:从StatefulSet到Operator
一开始Kubernetes只是被设计用来运行无状态应用,直到在1.5版本中才添加了StatefulSet控制器用于支持有状态应用,但它直到1.9版本才正式可用。本文将介绍有状态和无状态应用,一个通过K8S StatefulSet来编排有状态应用的示例,以及当前有状态应用容器化现状及将来的发展趋势。
SammyLiu
2019/12/12
1.9K0
在Kubernetes上运行有状态应用:从StatefulSet到Operator
有状态流处理:Flink状态后端
这篇文章我们将深入探讨有状态流处理,更确切地说是 Flink 中可用的不同状态后端。在以下部分,我们将介绍 Flink 的3个状态后端,它们的局限性以及根据具体案例需求选择最合适的状态后端。
smartsi
2019/08/07
2K0
有状态流处理:Flink状态后端
有状态应用的容器化
本文探讨了应用状态在容器化环境中的处理方式。文章首先介绍了应用状态的概念,然后讨论了在容器化过程中处理应用状态的各种方法,包括持久化状态、配置状态、会话状态和连接状态。文章还介绍了一些可选的策略,包括共享内存、文件系统、环境变量和卷。最后,文章总结说,虽然容器的生命周期是短暂的,但应用状态未必如此,通过使用容器化的方式进行处理,可以更好地解决应用状态的问题。", "kind": "summary
Techeek
2018/01/08
3.9K0
有状态应用的容器化
有状态的节点控制器 StatefulSet 的存储状态
StatefulSet 通过为每一个 pod 分配有粘性的 ID,并且在 pod 发生变更时,维持 ID 的稳定,从而保证了网络状态下不对等关系的各个 Pod 在启动、删除和重建过程中能够始终保持稳定。
用户3147702
2022/06/27
1.5K0
有状态的节点控制器 StatefulSet 的存储状态
云计算的乐高玩具,Docker从根本上改变应用程序开发
【编者按】Docker改变了应用程序开发领域的很多事情,已经成为时下最流行的开源项目之一,而且也从根本上改变了人们构建应用程序思维方式。Docker正在改变云的开发实践,允许任何人以整合别人容器的形式利用封装社区的最佳实践,这就像云组件的乐高玩具。 以下为译文: Docker就像一场森林大火,这个新的Linux容器技术以它自己的方式点燃了周围的一切,我们许多人难以跟上它蔓延的速度。Docker不仅是历史上最流行的开源项目之一,而且也从根本上改变了人们构建应用程序的思维方式。 严格来说,许多基于Docker
CSDN技术头条
2018/02/08
7830
浅谈前端的状态管理(上)
提到状态管理大家可能马上就想到:Vuex、Redux、Flux、Mobx等等方案。其实不然,不论哪种方案只要内容一多起来似乎都是令人头疼的问题,也许你有适合自己的解决方案又或者简单的注释和区分模块,今天来聊一聊前端的状态管理,如果你有好的建议或问题欢迎在下方留言提出。
饼干_
2022/09/19
1K0
Docker服务的查看服务状态命令(systemctl status docker)
查看docker服务状态 #查看docker服务状态: systemctl status docker 非root用户使用 #查看docker服务: sudo systemctl status docker
用户9006224
2022/12/21
3.7K0
Docker PHP应用程序示例
我们可以使用docker运行php应用程序。在以下步骤中,将使用创建Docker并运行php应用程序。
黑洞代码
2022/01/04
9400
Docker Python应用程序示例
1.创建一个目录 mkdir -p ~/Downloads/code/docker/docker-python-app 1.进入目录 cd ~/Downloads/code/docker/docker-python-app/ 1.创建一个名称为:Dockerfile的Dockerfile文件 FROM python COPY . /Users/michael/Downloads/code/docker/ CMD ["python", "/Users/michael/Downloads/code/docker
黑洞代码
2022/01/24
6590
Docker Java应用程序示例
正如前面教程文章所提到的,Docker可以执行任何应用程序。在这里,创建一个Java应用程序并使用docker进行运行。此示例分以下几个步骤完成。
黑洞代码
2022/01/04
7610
React State(状态)(上)
React 把组件看成是一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。
陈不成i
2021/07/29
9630
点击加载更多

相似问题

Windows上docker的奇怪状态

20

Google应用程序引擎上的有状态应用程序

13

退出(0)状态的Docker应用程序

15

使用Kubernetes/Docker的有状态容器可能吗?

216

Windows上的Docker和Windows上的Docker有什么区别?

211
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文