reactjs 我想从变量中得到一个值,但是当我在控制台显示值时,我看到“未定义”,为什么?

yjghlzjz  于 2022-11-29  发布在  React
关注(0)|答案(1)|浏览(110)

这是我想从中获取值组件代码

import React, {useEffect} from "react";
import "./Catalog.css"
import 'macro-css';
import Busket from "../Busket/Busket"

function Card(props){

    const [complete, setComplete] = React.useState(false)

    const handleComplete = () => {
        setComplete(!complete)
        {complete ? <Busket props={props} complete={complete}/>: <Busket />}
    }
return(
    <div>
        <div className="card">
            <img width="200px" height="250px" src={props.img} />
            <h5>{props.title}</h5>
            <div className="d-flex align-center justify-between">
                <div>
                    <p>Цена:</p>
                    <b>{props.cost}руб</b>
                </div>
                <button className="Catalog__btn" onClick={handleComplete}><img width='10px' height='10px' src={complete ? require("../../../images/complete.png") : require("../../../images/plus.jpg") }/></button>
            </div>
        </div>
    </div>
)

}

export default Card;

这是组件的代码,我想在其中引入一个值,但我得到了'undefined'

import React from "react";
import "./Busket.css"
import styles from "../Main/MainContent.module.css"
import BusketCard from "./BusketCard";
import"../Catalog/Card.js";

function Busket({complete}) {

    return (
        <div className={styles.MainContent}>
            <button onClick={() => {console.log(complete)}}>+</button>
        </div>
    );
}

export default Busket;

默认complete为false,并且重新加载页面不是'undefined'的原因。当我尝试传输另一个变量时:计数= 0,我也得到了“未定义”。我不知道我应该做什么,帮助!

gab6jxml

gab6jxml1#

嘿,我认为你不确定的原因是因为这句话

{complete ? <Busket props={props} complete={complete}/>: <Busket />}

complete默认为'false',因此它将呈现没有属性/值的<Busket/>,因此Busket组件中的{complete}变为'undefined',如果将'Complete'设置为true,则在<Busket/>中将得到'True',因为只有当complete/condition为'true' <Busket props={props} complete={complete}/>时才传递属性

相关问题