私のアプリケーションでauthenticate
リンクへのコンポーネントを作成しようとしています。有効なReact要素(またはnull)が返されなければなりません.ReactJSのエラー
私は次のようにそれを使用したい:私はこのコードを書かれていることについては
<Authenticated>
<Link to="/login">Login</Link>
</Authenticated>
。
import React from 'react'
import { connect } from 'react-redux'
class Authenticated extends React.Component {
render() {
let content = null;
if(this.props.authenticate) {
content = this.props.children
}
return (
<span>{content}</span>
)
}
}
function mapStateToProps(state){
return {
authenticate: state.auth.authenticated
}
}
export default connect(mapStateToProps)(Authenticated)
検証後に私のリンクが正しく表示されます。しかし、ここの問題はspan
です。
<span>{content}</span>
、その戻り値Link
がspan
でラップされています。それは私がそれをグローバルにすることを許していない(どこにでも置く)。
私はspan
ラッパーの投げ違いを取り除くことにします。
Uncaught Error: Authenticated.render(): A valid React element (or null) must be returned. You may have returned undefined, an array or some other invalid object. at invariant (invariant.js:44) at ReactCompositeComponentWrapper._renderValidatedComponent (ReactCompositeComponent.js:831) at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:362) at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258) at Object.mountComponent (ReactReconciler.js:46) at ReactCompositeComponentWrapper.performInitialMount (ReactCompositeComponent.js:371) at ReactCompositeComponentWrapper.mountComponent (ReactCompositeComponent.js:258) at Object.mountComponent (ReactReconciler.js:46) at ReactDOMComponent.mountChildren (ReactMultiChild.js:238) at ReactDOMComponent._createInitialChildren (ReactDOMComponent.js:691)
出力からspan
を削除してください。
spanの代わりにdivを使用してみます。 –
両方とも同じ効果があります。内部コンポーネント用に書かれたCSSをブロックします。 –
JSXでは、要素のグループを含む要素にラップする必要があります。だから、複数の子供を表示したい場合は、スパン/ divなどを含むラップで囲む必要があります。 –