訪問したセクションに従って検索バーを表示します(React.js)編集

フェデリコパペッティ

私はreactjsを学習していて、ホームセクションに検索バーを表示し、ショップセクション(または他のセクション)に検索バーを表示しないようにしようとしています。

理解を深めるために、参照画像を残しておきます。最終結果は次のようになります。

これは私のコンポーネントのコードです:

import React, {Component} from 'react';
import {Nav, Button, Navbar, Form, FormControl} from 'react-bootstrap';
import {NavLink} from 'react-router-dom';
import {AuthButton} from '../App';
import logo from '../img/logo.png'

class Header extends Component{
    render(){
        return(
            <>
                <Navbar>
                    <div>
                        <img src={logo} className='main-logo'/>
                    </div>
                    <Form className='form'>
                        <Button className='btn-search'/>
                        <FormControl type="text" placeholder="Search..." className='barra'/>
                    </Form>                                        
                    <Nav className="ml-auto">
                        <NavLink className= 'nav-link' to='/'>Home</NavLink>
                        <hr className='hr-header'/>
                        <Nav.Link className= 'nav-link'>About</Nav.Link>
                        <hr className='hr-header'/>
                        <NavLink className= 'nav-link' to='/Shop'>Shop</NavLink>
                        <hr className='hr-header'/>
                        <Nav.Link className= 'nav-link'>Help</Nav.Link>
                    </Nav>        
                    <NavLink to='/Shopping'>           
                        <Button className='btn-cart' variant="secondary">
                        Your Cart                       
                        </Button>                        
                    </NavLink>
                    <AuthButton/>
                </Navbar>

            </>
        )
    }
}
export default Header;

これが私のコンポーネントをルーターにインポートした方法です

import React from 'react';
import './styles/App.css';
import Shop from './container/shop';
import Shopping from './container/shopping';
import Shipping from './container/shipping';
import Payment from './container/payment';
import home from './container/home';
import Product from './container/Product';
import iPhone from './container/iPhone';
import iPad from './container/iPad';
import SignInForm from './components/SignInForm';
import {BrowserRouter as Router, Route, withRouter, Redirect, Switch} from 'react-router-dom';
import {Button, ButtonToolbar, OverlayTrigger, Popover} from 'react-bootstrap';

    function App(){
      return (
        <Router>           
          <Route>      
            <Switch>
              <Route exact path='/' component={home}/>
              <Route path='/Shop' component={Shop}/>
              <Route path='/Product' component={Product}/>
              <Route path='/iPhone' component={iPhone}/>
              <Route path='/iPad' component={iPad}/>
              <PrivateRoute path='/Shopping' component={Shopping}/>
              <Route path='/Shipping' component={Shipping}/>
              <Route path='/Payment' component={Payment}/>
              <Route path='/SignInForm' component={SignInForm}/>
              <Route path='*' component={() => <div 
                  style = {{ 
                    textAlign: 'center', 
                    paddingTop: 250,
                    fontSize: 30
                  }}> 
                    <strong>404 NOT FOUND</strong>
                  </div>}/>
            </Switch>        
          </Route>
        </Router>
      );
    }
    export default App;

私のセクションの継続のために他のファイル.jsもあります

皆さん、ありがとうございました!

それは私ではありません

NavとSearchに別々のコンポーネントを作成すると、作業がはるかに簡単になります。SearchコンポーネントをNavコンポーネント内に配置し、特定のアドレス(つまり、/ Shop以外)でのみ検索をレンダリングします。

import React from "react";
import { withRouter } from "react-router-dom";
import Nav from "/.Nav";

function SearchComponent() {
  return <div>My search bar</div>;
}

function MyComponent(props) {
  const path = props.location.pathname;
  return (
    <div>
      <Nav>{path !== "/Shop" && <SearchComponent />}</Nav>
    </div>
  );
}

export default withRouter(MyComponent);

この手法ではwithRouter介して場所公開し、現在のパス(/ pageName)を取得します。次に、場所が「/ Shop」の場合、条件付きレンダリング使用して検索を非表示にします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JSによるCSSの編集

分類Dev

UITableViewのセクションに対してのみ編集モードを有効にします

分類Dev

Knockout JS:クリックしてテーブルで編集

分類Dev

WPF Datagridセルの値を編集して保存します。編集中に、「ブレークモードのアプリケーション」に移動します。

分類Dev

編集したメッセージdiscord.jsを削除する方法

分類Dev

マングース非同期/検索を待ってから編集して保存しますか?

分類Dev

Chart.js バーの幅を編集する -v2.5-

分類Dev

Node.JSを使用したXMLファイルの編集

分類Dev

セルを編集した後、JTableを編集/更新します

分類Dev

CodeIgniter-InspectElementを使用して<form>アクションを編集することによって引き起こされる問題を防ぎます

分類Dev

JSで満たされた入力を編集する方法は?

分類Dev

Angular js SmartTableのコンテンツを編集する方法

分類Dev

React JS:編集した値をキャプチャできません

分類Dev

htaccessを編集するとCSSとJSが失われます

分類Dev

jsを使用してPasteBinを編集し、それを読みます

分類Dev

Angular Js JSON JavaScript、ボタンでjsonデータを編集

分類Dev

引数に従って、スクリプトを使用してデータセットの特定の列を編集します

分類Dev

typed.jsテキストを編集可能にする方法は?

分類Dev

反応後のDiscord.js編集メッセージ

分類Dev

React.jsでのリッチデータ構造の編集

分類Dev

jquery.inline-edit.jsを使用したTextareaのインライン編集–IDを取得して保存します

分類Dev

クリックしたアクションを編集する

分類Dev

2つのdatepickersのhighstocks.jsを編集する方法

分類Dev

リダイレクト後の応答を編集します(node.js&express)

分類Dev

Stripecheckout.jsを使用してクレジットカードを編集します

分類Dev

React以外のどのJSフレームワークがライブ編集を許可しますか?

分類Dev

検索コマンドを編集してファイルを除外します

分類Dev

ドロップダウンナビゲーションバーのhtml + css + jsを編集する

分類Dev

編集または追加するオブジェクトを検索します

Related 関連記事

  1. 1

    JSによるCSSの編集

  2. 2

    UITableViewのセクションに対してのみ編集モードを有効にします

  3. 3

    Knockout JS:クリックしてテーブルで編集

  4. 4

    WPF Datagridセルの値を編集して保存します。編集中に、「ブレークモードのアプリケーション」に移動します。

  5. 5

    編集したメッセージdiscord.jsを削除する方法

  6. 6

    マングース非同期/検索を待ってから編集して保存しますか?

  7. 7

    Chart.js バーの幅を編集する -v2.5-

  8. 8

    Node.JSを使用したXMLファイルの編集

  9. 9

    セルを編集した後、JTableを編集/更新します

  10. 10

    CodeIgniter-InspectElementを使用して<form>アクションを編集することによって引き起こされる問題を防ぎます

  11. 11

    JSで満たされた入力を編集する方法は?

  12. 12

    Angular js SmartTableのコンテンツを編集する方法

  13. 13

    React JS:編集した値をキャプチャできません

  14. 14

    htaccessを編集するとCSSとJSが失われます

  15. 15

    jsを使用してPasteBinを編集し、それを読みます

  16. 16

    Angular Js JSON JavaScript、ボタンでjsonデータを編集

  17. 17

    引数に従って、スクリプトを使用してデータセットの特定の列を編集します

  18. 18

    typed.jsテキストを編集可能にする方法は?

  19. 19

    反応後のDiscord.js編集メッセージ

  20. 20

    React.jsでのリッチデータ構造の編集

  21. 21

    jquery.inline-edit.jsを使用したTextareaのインライン編集–IDを取得して保存します

  22. 22

    クリックしたアクションを編集する

  23. 23

    2つのdatepickersのhighstocks.jsを編集する方法

  24. 24

    リダイレクト後の応答を編集します(node.js&express)

  25. 25

    Stripecheckout.jsを使用してクレジットカードを編集します

  26. 26

    React以外のどのJSフレームワークがライブ編集を許可しますか?

  27. 27

    検索コマンドを編集してファイルを除外します

  28. 28

    ドロップダウンナビゲーションバーのhtml + css + jsを編集する

  29. 29

    編集または追加するオブジェクトを検索します

ホットタグ

アーカイブ