程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在下一个js中从父级传递到组件时未定义道具大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在下一个js中从父级传递到组件时未定义道具?

开发过程中遇到在下一个js中从父级传递到组件时未定义道具的问题如何解决?下面主要结合日常开发的经验,给出你关于在下一个js中从父级传递到组件时未定义道具的解决方法建议,希望对你解决在下一个js中从父级传递到组件时未定义道具有所启发或帮助;

我有 /pages/profile.Js 调用 lovedOne 元素,从 props 传递值。 调试显示这些值在传递时有效

import React from "react";
import lovedOne from "../components/loved_one";

export const Profile = ({ loved_ones }) => {
  const [session,loading] = useSession();
  if (loading) return <div>loading...</div>;
  if (!session) return <div>no session</div>;

  return (
    <Layout>
      {session && (
        <>
          <img src={session.user.imagE} classname="avatar" />
          <h1>{session.user.namE}</h1>
        </>
      )}
      {loved_ones.map((loved_one,indeX) => (
        <lovedOne
          key={index}
          firstname={loved_one.firstnamE}
          surname={loved_one.surnamE}
          email={loved_one.email}
        />
      ))}

      <style Jsx>{`
        .avatar {
          wIDth: 220px;
          border-radius: 10px;
        }
      `}</style>
    </Layout>
  );
};

但是在 /components/loved_one.Js 中我的 props 是未定义的

import React,{ useState,useRef } from "react";

export const lovedOne = ({ props }) => {
  const [setActive,setActiveState] = useState("");
  const [setHeight,setHeightState] = useState("0px");

  const content = useRef();

  function toggleAccordion() {
    setActiveState(setActive === "" ? "active" : "");
    setHeightState(
      setActive === "active" ? "0px" : `${Content.current.scrollHeight}px`
    );
  }

  return (
    <div>
      <div classname="row">
        <button
          classname={`collection-item ${setActivE}`}
          onClick={toggleAccordion}
        >
          <i classname="fas fa-plus teal-text"></i>
        </button>
        <div classname="col s2">
          {props.firstnamE} {props.surnamE}
        </div>
        <div classname="col s2">{props.email}</div>
      </div>
      <div ref={Content} style={{ maxHeight: `${setHeight}` }}>
        <span>some stuff</span>
      </div>
    </div>
  );
};

export default lovedOne;

我尝试过传递单个变量,并传递整个 love_ones 对象。我遇到了同样的问题。

非常感谢任何帮助!

解决方法

你有没有试过传递 props 而不是 {props} ?

丢括号,试试这个:

export const LovedOne = (props) => {

大佬总结

以上是大佬教程为你收集整理的在下一个js中从父级传递到组件时未定义道具全部内容,希望文章能够帮你解决在下一个js中从父级传递到组件时未定义道具所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: