有人可以帮忙解释这个错误吗?我尝试了几种不同的方式来编写React.Component。缺少什么吗?
错误:
4:7警告'ScrollingHorizontally'已定义,但从未使用过no-unused-vars
组件:
import React, { Component } from 'react'
import HorizontalScroll from 'react-scroll-horizontal'
class ScrollingHorizontally extends Component {
render() {
const child = { width: `30em`, height: `100%`}
const parent = { width: `60em`, height: `100%`}
return (
<div style={parent}>
<HorizontalScroll>
<div style={child} />
<div style={child} />
<div style={child} />
</HorizontalScroll>
</div>
)
}
}
我也尝试过:
import React from 'react'
import HorizontalScroll from 'react-scroll-horizontal'
class ScrollingHorizontally extends React.Component {
...
答案 0 :(得分:2)
要回答您的问题,最初收到的警告是您定义了变量ScrollingHorizontally
,但从未使用过它。即使它是一个类,它仍然是定义的变量。使用标准变量更容易证明此错误:
const things = 123;
const stuff = 456; // this will throw an warning because it is never used.
console.log(things);
类也会发生相同的情况。如果您在文件中定义一个类而从不使用它,则将收到该警告。从文件中导出类将有效地使用它,因为您正在执行导出它的操作。
-
为什么会出现此错误?
元素类型无效:预期为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记了从定义文件中导出组件,或者可能混淆了默认导入和命名导入。
这很简单,您没有从文件中导出类,因此当您将组件导入到index.js
文件中时,它什么也没找到。并非文件中的所有类都会自动导出,您需要明确声明应将其导出。这样,您就可以将某些类或变量private
保留在特定文件中。
MDN - Export (this link breaks down the different types of exporting)
在一个文件中包含多个组件的示例:
parent.js
import React from 'react';
// This component is not exported, can only be used within
// this file.
class Child extends React.Component {
// ...
}
// This component is not used in the file but is exported to be
// used in other files. (named export)
export class RandomComponent extends React.Component {
// ...
}
// This component is exported as the default export for the
// file. (default export)
export default class Parent extends React.Component {
//...
render() {
return <Child />
}
}
index.js
import React from 'react';
import Parent, { RandomComponent } from './parent.js';
// ...