尝试将React-DateRangePicker集成到React Project时出错

时间:2015-08-10 15:37:23

标签: javascript reactjs momentjs daterangepicker fluxible

目前正在使用ReactJs和Fluxible架构构建Web应用程序。在尝试将React-daterangepicker模块集成到我的项目中时,我遇到了以下错误,其中我无法跟踪原点。

$.fn.daterangepicker = function(options, callback) {
                         ^
TypeError: Cannot set property 'daterangepicker' of undefined
    at /Volumes/DATA/Projects/deeplinq/node_modules/react-bootstrap-daterangepicker/lib/daterangepicker.js:1360:26

这是我的DatePicker组件,我已经按照github演示完成了相同的步骤。

'use strict';
var React = require('react/addons');
var moment = require('moment');
var DateRangePicker = require('react-bootstrap-daterangepicker');
import DefaultMixin from '../mixins/DefaultMixin';

module.exports = React.createClass({

    mixins: [DefaultMixin],

    render() {

        return (
            <DateRangePicker startDate={moment('1/1/2014')} endDate={moment('3/1/2014')}>
                <div>Click Me To Open Picker!</div>
            </DateRangePicker>
        );

    }

});

可能导致此错误的原因是什么?谷歌搜索它没有结果,我在过去几个小时里一直在努力。

2 个答案:

答案 0 :(得分:1)

似乎react-bootstrap-daterangepicker模块需要jQuery作为$全局可用。在加载模块之前,请尝试在页面上包含jQuery。

答案 1 :(得分:0)

TL; DR:这不是一个反应问题,你需要在加载你的反应文件之前加载jQuery。

让我们解构您的错误消息:

$.fn.daterangepicker = function(options, callback) {
                     ^
TypeError: Cannot set property 'daterangepicker' of undefined
at /Volumes/DATA/Projects/deeplinq/node_modules/react-bootstrap-daterangepicker/lib/daterangepicker.js:1360:26

我最感兴趣的是第一部分Cannot set property 'daterangepicker' of undefined ......

这种情况正在发生,因为$.fn正在返回 undefined

试试这个:

在你需要做出反应之前,你应该要求jquery:

var $ = require('jquery');
var React = require('react/addons');