无法使用React和Bootstrap创建自定义样式

时间:2016-10-28 11:33:55

标签: javascript css twitter-bootstrap reactjs react-bootstrap

我正在使用react-bootstrap NPM包让我的React组件正常显示。我需要自定义其中一些,所以我遵循official React-Bootstrap documentation,但代码会抛出错误index.jsx:5 Uncaught TypeError: Cannot read property 'addStyle' of undefined

这是我的自定义Button组件代码:

import React from "react";
import Button from 'react-bootstrap/lib/Button';
import bootstrapUtils from 'react-bootstrap/lib/utils/bootstrapUtils';

bootstrapUtils.addStyle(Button, 'custom');

export default class MediaItemButton extends React.Component {
    render() {

        return (
            <div>
                <style type="text/css">{`
                .btn-custom {
                    background-color: purple;
                    color: white;
                }
                `}</style>
                <Button bsStyle="primary">Custom</Button>
            </div>
        );
    }
}

3 个答案:

答案 0 :(得分:6)

更改为:

import { bootstrapUtils } from 'react-bootstrap/lib/utils';

答案 1 :(得分:4)

您也可以这样做:

    import React from "react";
    import Button from 'react-bootstrap/lib/Button';
    import bootstrapUtils from 'react-bootstrap/lib/utils/bootstrapUtils';

    bootstrapUtils.addStyle(Button, 'custom');

    export default class MediaItemButton extends React.Component {
        render() {
            var styles={
                "backgroundColor" : "purple",
                "color"           : "white"
            };
            return (
                <div>
                    <Button style={styles} bsStyle="primary">Custom</Button>
                </div>
            );
        }
    }

答案 2 :(得分:0)

bootstrapUtils是一个命名导出而非默认导出,因此您需要在其周围使用{}

尝试使用: import { bootstrapUtils } from 'react-bootstrap/lib/utils/bootstrapUtils';