1

目前正在使用 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>
        );

    }

});

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

4

2 回答 2

1

似乎该react-bootstrap-daterangepicker模块需要 jQuery 才能在全球范围内以$. 在加载模块之前尝试在页面上包含 jQuery。

于 2015-09-10T03:21:58.353 回答
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');
于 2015-09-11T07:27:04.763 回答