1

我正在尝试创建一个简单的滑块,但是当我map输入数据时,而不是简单地将 html 添加到滑块中,我收到以下错误:

元素类型无效:应为字符串(用于内置组件)或类/函数(用于复合组件)但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。

import React from 'react';
import Slider from 'react-slick';
import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';

const WishAddImage = () => {
    const imgArray = [
        {
            src: 'https://www.reiss.com/media/product/653/024/20-1.jpg?format=jpeg&auto=webp&quality=85&width=250&height=287&fit=bounds'
        },
        {
            src: 'https://www.reiss.com/media/product/993/016/76-1.jpg?format=jpeg&auto=webp&quality=85&width=250&height=287&fit=bounds'
        }
    ];

    const sliderSettings = {
        dots: true,
        infinite: true,
        speed: 500,
        slidesToShow: 1,
        slidesToScroll: 1
    };
    const wishImage = <Slider {...sliderSettings}>{imgArray.map(img => `<div><img src='${img.src}' /></div>`)}</Slider>;

    // const wishImage = ( /* <-- this works as it should when html used */
    //     <Slider {...sliderSettings}>
    //         <div>
    //             <h1>1</h1>
    //         </div>
    //         <div>
    //             <h1>2</h1>
    //         </div>
    //     </Slider>
    // );
    return <div>{wishImage}</div>;
};

export default WishAddImage;

我见过这些类似的问题,但不适用于我:

  1. 未捕获的错误:不变违规:元素类型无效:预期字符串(用于内置组件)或类/函数但得到:对象
  2. 未捕获的错误:元素类型无效:应为字符串(对于内置组件)
  3. 元素类型无效:应为字符串(用于内置组件)或类/函数

有什么明显的我失踪了吗?

我正在使用 react & react-dom v 16.6.3

4

1 回答 1

2

删除您的引号字符:

 const wishImage = <Slider {...sliderSettings}>{imgArray.map(img => <div><img src={img.src} /></div>)}</Slider>;
于 2018-12-31T12:35:30.950 回答