Type d'élément n'est pas valide: attend une chaîne de caractères (pour les composants intégrés) ou de classe/fonction Réagir Erreur

J'ai un problème avec Réagissent quand j'ai essayer de changer la page par le bouton (mais) la console me donne:

Type d'élément n'est pas valide: attend une chaîne de caractères (pour les composants intégrés) ou >une classe/fonction (pour les composants composites) mais: undefined. Vous >probablement oublié d'exporter votre composant à partir du fichier est défini dans.

Mais quand j'ai mis le onClick code dans le code de la classe, il montre le jsx code. De sorte qu'il fonctionne, mais pourquoi j'obtiens toujours l'erreur? Voici mon code:

import React from 'react';
import {render} from 'react-dom';
//sass
require('../sass/style.scss');
var pages = ['Qrscan'];
var jsx = [<Qrscan />];
class App extends React.Component {
constructor (props) {
super(props);
this.state = {target: <Menu />};
App.changePage = App.changePage.bind(this);
}
static changePage (tar) {
this.setState({target: tar});
}
render () {
return (
this.state.target
)
}
}
//Rendering
class Menu extends React.Component {
render() {
return (
<div id="root">
<Header />
<div className="container">
<But target="Qrscan" class="button button-QR" text="Use QR code" type="button" linkTo="" />
<But class="button button-URL" text="Use URL" type="button" />
</div>
</div>
)
}
}
class Qrscan extends React.Component {
render() {
return (
<h1>test</h1>
)
}
}
//elements
class Header extends React.Component {
render () {
return (
<div className="header">
<div className="header-logo">Jukey</div>
</div>
)
}
}
class But extends React.Component {
getInfo () {
for (var i = 0; i < pages.length; i++) {
if(pages[i] == this.props.target) {
return jsx[i];
}
}
}
render () {
return (
<button onClick={() => App.changePage(this.getInfo())} className={this.props.class}>{this.props.text}</button>
)
}
}
render (<App />, document.getElementById('app'));

Merci d'avoir pris le temps de m'aider avec mes problèmes!

Est-ce tout dans un seul fichier? Aussi, après la dernière phrase de l'erreur, comme dans "vérifier le rendu de la fonction de ..."
oui, c'est tous en un seul fichier et c'est tout ce que j'obtiens forme de l'erreur de toutes les autres choses sont des redirections rien comme vous l'avez dit

OriginalL'auteur Rick Grendel | 2017-06-09