1. ホーム
  2. reactjs

[解決済み】React - 式は1つの親要素を持つ必要がありますか?

2022-01-21 10:22:31

質問

私はReactの比較的新しいユーザーなのですが、ここでの標準はどうなっているのでしょうか?

このようなreact-routerがあると想像してください。

<Router history={history}>
    <Route path="/" component={App}>
      <Route path="home component={Home} />
      <Route path="about" component={About} />
      <Route path="inbox" component={Inbox} />
      <Route path="contacts" component={Contacts} />
    </Route>
</Router>

そして今、私は2つのルートを削除したい prop.mail に設定されています。 false ということで、まともなやり方は次のようになります。

<Router history={history}>
      <Route path="/" component={App}>
        <Route path="home component={Home} />
        <Route path="about" component={About} />

        { if.this.props.mail ? 
          <Route path="inbox" component={Inbox} />
          <Route path="contacts" component={Contacts} />
        : null }

      </Route>
 </Router>

しかし、ルートが2つあるため、Reactはエラーを返します。

式は1つの親要素でなければなりません。

ここで複数のifを使いたくありません。これを処理するために望ましいReactの方法は何ですか?

どのように解決するのですか?

配列に入れる(キーも割り当てる)。

{ if.this.props.mail ? 
    [
        <Route key={0} path="inbox" component={Inbox} />,
        <Route key={1} path="contacts" component={Contacts} />
    ]
: null }

最新のReactバージョンでは React.Fragment も、こんな感じで。

{ if.this.props.mail ? 
    <React.Fragment>
        <Route path="inbox" component={Inbox} />,
        <Route path="contacts" component={Contacts} />
    </React.Fragment>
: null }