Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当通过脚本而不是导入访问react下拉列表javascript时,如何访问kendo react小部件?_Javascript_Reactjs_Kendo React Ui - Fatal编程技术网

当通过脚本而不是导入访问react下拉列表javascript时,如何访问kendo react小部件?

当通过脚本而不是导入访问react下拉列表javascript时,如何访问kendo react小部件?,javascript,reactjs,kendo-react-ui,Javascript,Reactjs,Kendo React Ui,我将此添加到我的页面: 访问我下载的剑道反应脚本的静态资源 然后在第页中进行设置: class MultiSelectContainer extends React.Component { constructor(props) { super(props); console.log('Setting up multiselect', props.data); this.data

我将此添加到我的页面:

访问我下载的剑道反应脚本的静态资源

然后在第页中进行设置:

class MultiSelectContainer extends React.Component {
            constructor(props) {
                super(props);
                console.log('Setting up multiselect', props.data);
                this.dataSource = new kendo.data.DataSource({
                    data: props.data,
                    sort: {
                        field: 'name',
                        dir: 'asc'
                    },
                    group: {
                        field: 'resourceType',
                        dir: 'desc'
                    }
                });
                this.placeholder = 'Filter By People...';
                this.enable = false;
                this.minLength = 3;
                this.enforceMinLength = false;
                this.tagTemplate = '<span class="selected-value" title="#:he.decode(data.name)#" style="color: white;">#:he.decode(data.alias)#</span>';
                this.template = $('#dropDownTemplate').html();
                this.dataTextField = 'searchName';
                this.dataValueField = 'value';
                this.filter = 'contains';
                this.autoClose = false;

                this.onChange = this.onChange.bind(this);
                this.onSelect = this.onSelect.bind(this);
            }

            onSelect = (e) => {
                //Erase what the user has typed after they make a selection
                e.sender.input.val('');
            }

            onChange = (e) => {
                console.log('MultiSelect Changing', e);
                var filteredDataSource = e.sender.dataItems();
                //Get selected pills of user filter multi-select, and set their background colors to specified user color (either bland grey, or user defined color)
                var selectedTags = $('.k-multiselect li.k-button');
                for (var i = 0; i < selectedTags.length; i++) {

                    if (selectedTags[i].parentNode.id == 'user-filter_taglist') {
                        //ownerIdArr.push(value[i]);

                        var tag = $(selectedTags[i]);
                        var item = $(tag.find('span.selected-value'));
                        for (var k = 0; k < filteredDataSource.length; k++) {
                            if (item[0].textContent === he.decode(filteredDataSource[k].alias)) {
                                tag.css({
                                    'background': filteredDataSource[k].tagColor,
                                    'width': '100px',
                                    'height': '30px',
                                    'font-size': '15px',
                                    'overflow': 'hidden',
                                    'text-overflow': 'ellipsis',
                                    'border-radius': '5px'
                                });
                            }
                        }
                    }
                }    
            }

            render() {
                return (
                    <div>
                        <MultiSelect
                            change={this.onChange}
                            select={this.onSelect}
                            dataSource={this.dataSource}
                            placeholder={this.placeholder}
                            value={this.values} />
                    </div>
                );
            }
        }
但我发现:ReferenceError:MultiSelectContainer.render中没有定义MultiSelect

我假设这就是我引入javascript文件的方式。使用import,您将执行以下操作:从'blah blah path name'导入{MultiSelect};,因此,多选将被定义


有没有可能像我一样引入JS文件,并确定MultiSelect是什么,这样它就被定义了,就像在导入方法中一样?

我做了一些思考,以防有人试图做类似的事情。。。将react脚本加载到脚本标记中,而不是导入

但是,我必须这样做,而不是仅仅


这应该转化为您尝试使用脚本标记加载的大多数剑道反应脚本,它们的组件都应该在窗口中。

加载剑道库脚本发生在您自己的反应代码之前?你确定通往它的路吗?Telerik没有提供任何示例应用程序代码,例如Todos应用程序等。您能详细说明一下您的源代码来自何处吗?我在这里有一个类似的问题-@Bondolin希望我记得正确,但似乎你只能通过NPM获得它们。我想我必须创建一个文件夹,然后NPM安装他们的react内容,将其压缩,然后将我的文件夹作为静态资源添加到我的Salesforce开发组织,在那里我可以像在问题开始时那样访问它。