相关疑难解决方法(0)

未捕获的错误:不变违规:元素类型无效:期望一个字符串(对于内置组件)或类/函数但得到:对象

我收到此错误:

未捕获错误:不变违规:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:object.

这是我的代码:

var React = require('react')
var ReactDOM =  require('react-dom')
var Router = require('react-router')
var Route = Router.Route
var Link = Router.Link

var App = React.createClass({
  render() {
    return (
      <div>
        <h1>App</h1>
        <ul>
          <li><Link to="/about">About</Link></li>
        </ul>
      </div>
    )
  }
})

var About = require('./components/Home')
ReactDOM.render((
  <Router>
    <Route path="/" component={App}>
      <Route path="about" component={About} />
    </Route>
  </Router>
), document.body)
Run Code Online (Sandbox Code Playgroud)

我的Home.jsx文件:

var React = require('react');
var RaisedButton = require('material-ui/lib/raised-button');

var Home = React.createClass({
  render:function() {
    return (
        <RaisedButton label="Default" /> …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router

490
推荐指数
19
解决办法
38万
查看次数

Javascript(ES6),导出const vs export默认值

我试图确定这两个之间是否存在任何重大差异,除了能够通过以下方式导入export default:

import myItem from 'myItem';
Run Code Online (Sandbox Code Playgroud)

使用export const我可以做:

import { myItem } from 'myItem';
Run Code Online (Sandbox Code Playgroud)

我想知道除此之外是否存在任何差异和/或用例.

javascript ecmascript-6 es6-modules

175
推荐指数
6
解决办法
8万
查看次数

使用带有javascript导入语法的括号

我遇到了一个使用以下语法导入库的javascript库:

import React, { Component, PropTypes } from 'react';
Run Code Online (Sandbox Code Playgroud)

上述方法与以下方法有什么区别?

import React, Component, PropTypes from 'react';
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 es6-modules

108
推荐指数
2
解决办法
2万
查看次数

ES6 + javascript模块导出选项

我已经看到ES6模块的公共出口有以下两种方式:

// method 1
export var getAnswer = function () { return 'forty two'; };

// method 2
export default function () { return 'forty two'; };
Run Code Online (Sandbox Code Playgroud)
  1. 这两个都有效吗?
  2. 如果是这样,为什么它们都存在?
  3. 是否有其他有效的模块导出选项使用ES6语法?

我很惊讶我用googlefu找不到答案.我关心ES6模块,不是 CommonJS,RequireJS,AMD,Node等.

javascript syntax module export ecmascript-6

80
推荐指数
2
解决办法
3万
查看次数

React.createElement:type无效 - 期望一个字符串

试图让react-router(v4.0.0)和react-hot-loader(3.0.0-beta.6)很好地播放,但是在浏览器控制台中得到以下错误:

警告:React.createElement:type无效 - 期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:undefined.您可能忘记从其定义的文件中导出组件.

index.js:

import React from 'react';
import ReactDom from 'react-dom';
import routes from './routes.js';
require('jquery');
import 'bootstrap/dist/css/bootstrap.min.css';
import 'bootstrap/dist/js/bootstrap.min.js';
import './css/main.css';

const renderApp = (appRoutes) => {
    ReactDom.render(appRoutes, document.getElementById('root'));
};

renderApp( routes() );
Run Code Online (Sandbox Code Playgroud)

routes.js:

import React from 'react';
import { AppContainer } from 'react-hot-loader';
import { Router, Route, browserHistory, IndexRoute } from 'react-router';
import store from './store/store.js';
import { Provider } from 'react-redux';
import App from './containers/App.jsx';
import Products from './containers/shop/Products.jsx';
import Basket from './containers/shop/Basket.jsx';

const routes …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router react-hot-loader

66
推荐指数
7
解决办法
10万
查看次数

导入React和import {Component}语法之间的区别

比如说,我们正在使用React和ES6.我们将React和Component导入为

import React from 'react'
import { Component } from 'react'
Run Code Online (Sandbox Code Playgroud)

为什么语法不同?我们不能按照下面的规定使用吗?

import Component from 'react'
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 reactjs

53
推荐指数
1
解决办法
5万
查看次数

38
推荐指数
5
解决办法
4万
查看次数

JavaScript - 未找到导出默认值

我有一个Vue 2项目,我编写了一个简单的函数来翻译几个月的日期,我想在我的一个组件中导入,但是我收到一个错误:

在'@/utils/date-translation'中找不到导出'default'(导入为'translateDate')

来自src文件夹的相对文件路径是正确的,我正在导出这样的函数:

export function translateDate(date) {
  // my code
}
Run Code Online (Sandbox Code Playgroud)

然后我在组件中导入它,如下所示:

import translateDate from '@/utils/date-translation'
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

javascript import module ecmascript-6 vue.js

33
推荐指数
3
解决办法
4万
查看次数

导入X和导入*之间的差异为node.js中的X(ES6/Babel)?

我有一个lib用ES6编写的node.js库(用Babel编译),我在其中导出以下子模块:

"use strict";

import * as _config from './config';
import * as _db from './db';
import * as _storage from './storage';

export var config = _config;
export var db = _db;
export var storage = _storage;
Run Code Online (Sandbox Code Playgroud)

如果从我的主项目中我包含这样的库

import * as lib from 'lib';
console.log(lib);
Run Code Online (Sandbox Code Playgroud)

我可以看到正确的输出,它按预期工作{ config: ... }.但是,如果我尝试像这样包含库:

import lib from 'lib';
console.log(lib);
Run Code Online (Sandbox Code Playgroud)

它会undefined.

有人能解释一下这里发生了什么吗?这两种导入方法不应该是等价的吗?如果没有,我错过了什么区别?

javascript node.js ecmascript-6 babeljs

29
推荐指数
2
解决办法
2万
查看次数

在ES6导入语句中使用Curly Braces有什么用

我可以看到有两种不同的导入方式

import React from 'react'
import { render } from 'react-dom'
Run Code Online (Sandbox Code Playgroud)

第二个有括号.那两者有什么区别?什么时候应该添加括号?谢谢

reactjs redux

26
推荐指数
2
解决办法
7193
查看次数