【问题标题】:Reactstrap Card component throws errorReactstrap Card 组件抛出错误
【发布时间】:2018-05-20 15:28:23
【问题描述】:

问题出在 reactstrap 卡上:https://reactstrap.github.io/components/card/

使用 Card 等 reactstrap 组件不起作用。

组件:版本 I

import React, { Component } from 'react';
import { Card, Button, CardImg, CardTitle, CardText, CardDeck, CardSubtitle, CardBody } from 'reactstrap';

class MoviesIndex extends Component {

    render() {
        return (
            <CardDeck>
                <Card>
                    <CardImg top width="100%" src="" alt="Movie Poster" />
                </Card>
            </CardDeck>
        );
    }
}

export default MoviesIndex;

输出: *它工作正常,没有任何错误。


但是当我尝试使用 reactstrap 中的其余组件时。它会在控制台上引发错误。

组件:第二版

import React, { Component } from 'react';
import { Card, Button, CardImg, CardTitle, CardText, CardDeck, CardSubtitle, CardBody } from 'reactstrap';

class MoviesIndex extends Component {

    render() {
        return (
            <CardDeck>
                <Card>
                    <CardImg top width="100%" src="" alt="Movie Poster" />
                    <CardBody>
                        <CardTitle>Card title</CardTitle>
                        <CardSubtitle>Card subtitle</CardSubtitle>
                        <CardText>This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.</CardText>
                        <Button>Button</Button>
                    </CardBody>
                </Card>
            </CardDeck>
        );
    }
}

export default MoviesIndex;

输出:


package.json

{
  "name": "client",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "start": "node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js",
    "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js --recursive ./test",
    "test:watch": "npm run test -- --watch"
  },
  "devDependencies": {
    "babel-core": "^6.2.1",
    "babel-loader": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "chai": "^3.5.0",
    "chai-jquery": "^2.0.0",
    "jquery": "^2.2.1",
    "jsdom": "^8.1.0",
    "mocha": "^2.4.5",
    "react-addons-test-utils": "^0.14.7",
    "webpack": "^1.12.9",
    "webpack-dev-server": "^1.14.0"
  },
  "dependencies": {
    "axios": "^0.17.1",
    "babel-preset-stage-1": "^6.1.18",
    "lodash": "^3.10.1",
    "react": "^16.2.0",
    "react-dom": "^16.2.0",
    "react-redux": "^5.0.6",
    "react-router": "^4.2.0",
    "react-transition-group": "^2.2.1",
    "reactstrap": "^4.8.0",
    "redux": "^3.7.2",
    "redux-promise": "^0.5.3"
  }
}

我无法调试此问题。请帮忙! TIA。

【问题讨论】:

    标签: reactjs reactstrap


    【解决方案1】:

    CardBody等组件在v4.8.0中不可用。

    升级到最新版本 (reactstrap v5.0.0-alpha.4) 解决了这个问题!

    npm install --save reactstrap@5.0.0-alpha.4

    有关更多详细信息,请参阅我在 reactstrap@github 上创建的问题: https://github.com/reactstrap/reactstrap/issues/730

    【讨论】:

      【解决方案2】:

      这里看起来像是一个错字:

      renderMovies() {
              return _.map(this.props.movies, movie => {
      

      缺少)

      试试

      _.map(this.props.movies, movie) => {
      

      如果不这样做,请将console.log() 放在所有内容之后,看看它变成了undefined

      这种类型的错误通常是由于某些内容未正确导出或由于数据丢失等而导致为 null/undefined 等造成的。

      这是我推荐使用 ES Lint 的好机会,因此您可以从被动显示错误中获得 24/7 的额外帮助。如果您不使用它,请检查它。绝对值得研究和使用。

      我不会在这里推荐任何特定的 linting 配置。这超出了本帮助的范围。 ES Lint 会用红色下划线在代码错误如缺少) 下划线,这样你会少遇到这种事情:)

      【讨论】:

      • 没有缺少')'。这是 lodash map 函数的第二个参数。 lodash.com/docs/4.17.4#map
      • 如前所述,该组件的第一个版本已经可以使用了!似乎没有将 console.log 放在任何地方的范围,因为问题似乎出在“Card” reactstrap 组件或其他地方@
      猜你喜欢
      • 2020-11-29
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 2022-01-04
      • 2021-09-14
      • 2021-12-29
      • 2021-09-04
      • 1970-01-01
      相关资源
      最近更新 更多