首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象在使用带有样式的组件的数组值时可能是“未定义”的。

对象在使用带有样式的组件的数组值时可能是“未定义”的。
EN

Stack Overflow用户
提问于 2022-02-02 23:24:23
回答 1查看 149关注 0票数 0

我正在构建一个骨架组件,它接受一个名为circleSizes的道具,它是一个数字数组,用于设置骨架的宽度和高度。

这是构成部分:

代码语言:javascript
复制
export const SkeletonHandler: React.FC<SkeletonHandlerProps> = ({
  count = 1,
  circle = false,
  circleSizes = [50, 50],
}) => {
  return (
    <SkeletonWrapper count={count} circleSizes={circleSizes}>
      <Skeleton count={count} circle={circle} />
    </SkeletonWrapper>
  );
};

我的types.ts:

代码语言:javascript
复制
export type SkeletonHandlerProps = {
  count?: number;
  circle?: boolean;
  circleSizes?: Array<number>;
};

我知道如果我删除了?,错误就会消失,但是我不希望这个属性是必需的。

还有我的样式-组件文件:

代码语言:javascript
复制
export const SkeletonWrapper = styled.div<SkeletonHandlerProps>`
  width: ${(circle) => (circle ? 'fit-content' : '100%')};
  ${({ circle, circleSizes }) =>
    circle &&
    css`
      .react-loading-skeleton {
        width: ${circleSizes[0]};
        height: ${circleSizes[1]};
      }
    `}
`

图像错误:

我试过的是:

在道具处为circleSizes = [50, 50]

  • Putting数组放置默认值的
  1. ,例如: types.ts上的默认值,例如:在样式组件文件上编号的circleSizes?: Array<number> | [50, 50];
  2. Converting circleSizes,例如:width: ${Number(circleSizes[0])};

我做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-02 23:48:13

它抱怨是因为您在可能是undefined的变量上使用方括号操作数,所以尝试在circleSizes && circleSized[1]之前添加有效性检查。

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

https://stackoverflow.com/questions/70964162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档