简体   繁体   English

在 ReactJS 中,从父组件切换子组件中的图像

[英]In ReactJS toggle images in a child component from a parent component

I have a parent component, RoutineDashboard, with a child component, .我有一个父组件 RoutineDashboard 和一个子组件 . The child component has two props, image and checked, which are both images.子组件有两个props,image和checked,都是image。 I only want one of the images to show at a time.我只想一次显示一张图像。 How can I use the button in the child component to toggle between the images in from the parent component?如何使用子组件中的按钮在父组件中的图像之间切换?


import react, { Component } from 'react';
import { Route, NavLink, Switch} from 'react-router-dom';
import TaskCard from '../../Components/TaskCard';
import socks from '../../Images/iPhone 11 Pro/socks.svg';
import check from '../../Images/iPhone 11 Pro/check.svg';

class RoutineDashboard extends Component {
    
    state = {
        tasks: 4,
        completeTasks: 0
    }

  
    
    updateTaskCountHandler (className) {}
 

        
    
    render () {
      
        
        

    return (
        <div>
              <div  className="Container">  
                <div className="Tasks">
                    <TaskCard clicked={() => this.updateTaskCountHandler("task1")} className="task1" image={socks} check={check} title={'Get Dressed'}/>
                    
                </div>
            </div>
        </div>
    );
    }
}

export default RoutineDashboard;

Below is the child component:下面是子组件:

import react from 'react';
import { Route, NavLink, Switch, Redirect } from 'react-router-dom';
import './TaskCard.css';
import star from '../Images/iPhone 11 Pro/star.svg';
import check from '../Images/iPhone 11 Pro/check.svg';
// import bed from '../Images/iPhone 11 Pro/bed.svg';


function TaskCard (props) {


    function toggleCheck () {
        
    }

    return (
        <div>
            <div className="TaskCard">
                <div className="card w-100">
                    <div className="card-body">
                        <div className="TaskItems">
                            <img src={props.image}></img>
                            <img src={star}></img>
                            
                            <h5 className="card-title">{props.title}</h5>
                                <a href="#" id={props.id} className="btn btn-primary" onClick={()=>props.clicked()}>Done</a>
                                <img id="check" className="Check" src={check}></img>
                        </div>
                    </div>
                </div>  
            </div>
        </div>
    );
}

export default TaskCard;

You can add a boolean variable to state and show the images based on this variable value.您可以将 boolean 变量添加到 state 并根据此变量值显示图像。 You can also change its value when pressing the button.您也可以在按下按钮时更改其值。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM