コンポーネントを反応させて、私は不変違反:オブジェクトは、私の中に(ネストされたオブジェクトのための)子供に反応
{
_id: xxx,
stats: {a: 1, b: 2, c: 3},
shops: [s1, s2, s3] // s1, s2, s3 are all objects
...
}
のように見えます。そして、私のコードで、私はそれがオブジェクトであることを指定するオブジェクトuser
を持って有効ではありません。
export class UserComponent extends React.Component<void, Props, void> {
static propTypes = {
user: PropTypes.array,
fetchProfile: PropTypes.func.isRequired
};
componentDidMount() {
this.props.fetchProfile();
}
render() {
const { user } = this.props;
return (
<div className='container text-center'>
{user}
<Link to="/">homeE</Link>
</div>
)
}
}
しかし、私はエラーメッセージが言うのコードを実行します。
invariant.js:39 Uncaught Invariant Violation: Objects are not valid as a React child (found: object with keys {thumb, path, photo_id, shop_id, message, _id, date_added}). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons.invaria....
私がcreateFragment(user)
ような何かを行うことができているようですが。しかし、このオブジェクトは上記のようなネストされたオブジェクトがたくさんあるので、これは私のためには機能しません。
どのようにこれを解決するか知っていますか?
を取得できますが、ユーザーには多くのネストされたプロパティがあるため、オブジェクトとして残したいと思います。これはできますか? –
レンダリング 'view'にのみ関与するコンポーネントの' render'メソッドです。いくつかのデータを保存または計算するためのものではありません。 'user'オブジェクトで何をしたいのですか?それを文字列に変換し、そのすべてのキーなどをユーザーに表示することができます。 –
ユーザーはログインしているユーザー情報です。それはname、id、image..etcのような性質のトンを持つでしょう。同じページには、レンダリングのためにuser.reviews、user.stats、user.messages、user.checkinsをとるコンポーネントもあります。また、ユーザはstatのようないくつかのプロパティを持っています。これはちょうどネストされたオブジェクトです。 –