サーバーから取得したデータが ReactJS に表示されない

ぴゅうし

ここに画像の説明を入力してください

import React, { Component } from 'react';
    import { TabContent, TabPane, Nav, NavItem, NavLink } from 'reactstrap';
    import classnames from 'classnames';
    let _ = require('lodash');

    import {Doughnut} from 'react-chartjs-2';

    import {bindActionCreators} from "redux";
    import {connect} from 'react-redux';

    import {fetchedBeacons} from '../../actions/';

    // const beacon = {
    //     _id: 'jslg',
    //     name: 'beacon 1',
    //     description: 'something goes here',
    //     status: 'ACTIVE',
    //     manufacturer: 'EDDY',
    //     floor: '1st floor',
    //     location: 'entrance'
    // };

    // const advanceBeacon = {
    //   uuid: '452-457-854-521-125',
    //     major: '7458-458-56',
    //     minor: '7458-665',
    //     beaconType: 'bluetooth'
    // };

    const ChartData = {
      labels: ['wednesday', 'yesterday', 'today'],
      datasets: [
        {
          label: 'My First dataset',
          borderColor: 'rgba(255,255,255,.55)',
          data: [ 856, 785, 785],
          backgroundColor: [
    		'#063e70',
    		'#107bb5',
    		'#666666'
    		]
        }
      ],
    };

    // TODO - come up with a decent name

    class InfoRow extends Component {
        render() {
            return (
                
                <tr>
                    <td>{this.props.beacon}</td>
                    <td>{this.props.beacon}</td>
                </tr>
            )
        }
    }

    class InfoRows extends Component {
      render() {
        return (
           <tr>
                    <td>{this.props.beacon.major}:</td>
                    <td>{this.props.beacon.minor}</td>
                    <td>{this.props.beacon._id}</td>
                </tr>
        )
        
      }
    }
        
    class BeaconChartAnalysis extends Component {
        render() {
            return (
                <div className="col-lg-6">
                    <Doughnut data={ChartData}/>
                    <br/>

                </div>
            )
        }
    }

    class BeaconDetails extends Component {


        constructor(props) {
        super(props);

        this.toggle = this.toggle.bind(this);
        this.state = {
          activeTab: '1'
        };
      }

      toggle(tab) {
        if (this.state.activeTab !== tab) {
          this.setState({
            activeTab: tab
          });
        }
      }

        render() {

            const rows = [];
            let a = this.props.bcn;
            
            Object.keys(a).map(function(keyName, keyIndex){
              let b = a[keyName];
              console.log(b);
              return rows.push(<InfoRow beacon={keyName} key={keyIndex}/>)
            })

            const row = [];

            // this.props.bcn.map( item => {
            //     return row.push(<InfoRows beacon={item}/>)
            // });

            return (


                <div className="col-md-6 mb-2">
                <Nav tabs>
                  <NavItem>
                    <NavLink
                      className={classnames({ active: this.state.activeTab === '1' })}
                      onClick={() => { this.toggle('1'); }}
                    >
                      Beacon Details
                    </NavLink>
                  </NavItem>
                  <NavItem>
                    <NavLink
                      className={classnames({ active: this.state.activeTab === '2' })}
                      onClick={() => { this.toggle('2'); }}
                    >
                      Advanced Details
                    </NavLink>
                  </NavItem>
                </Nav>
                <TabContent activeTab={this.state.activeTab}>
                  <TabPane tabId="1">

                    <div className="col-lg-6">

                      <table className="table table-clear">
                        <tbody>
                          {rows}
                        </tbody>
                      </table>
                     </div>
    .
                  </TabPane>
                  
                  <TabPane tabId="2">

                    <div className="col-lg-6">
                      <table className="table table-clear">
                        <tbody>
                          {row}
                        </tbody>
                      </table>
                     </div>

                  </TabPane>

                </TabContent>
              </div>

            )

        }


    }

    class BeaconDetailComponent extends Component {

      componentWillMount = () => {
            this.props.fetchedBeacons(this.props.location.query.id);
        };

      
      render() {
        
        return (
            <div className="container">
                <div className="row">
                  <div className="col-md-6 col-md-offset-3"><h1>Beacon Information {this.props.location.query.id}</h1></div>
                </div>
                <br/>
                <br/>
                    { this.props.bcn != null?
                <div className="row">
                    <BeaconDetails bcn={this.props.bcn}/>
                    <BeaconChartAnalysis />
                </div> :
                        <center><h1>...Loading</h1></center>

                }
            </div>
        )
      }
    }

    function mapStateToProps(state) {
        return {
            bcn: state.beacons
        }

    }


    function matchDispatchToProps(dispatch){
        return bindActionCreators({fetchedBeacons: fetchedBeacons}, dispatch);
    }

    export default connect(mapStateToProps, matchDispatchToProps)(BeaconDetailComponent);

サーバーからフェッチされた詳細を表示するために必要なコード スニペットを提供していましたが、コンソール データが表示されているスクリーンショットも提供しましたが、画面には表示されません。サーバーからフェッチされているオブジェクトとその画像を確認できます。詳細はコンソールに表示されていますが、画面には表示されていません

シュバム・カトリー

beaconDetails コンポーネントでは、キーとともに値を InfoRow コンポーネントに渡し、null のチェックも実行する必要があります。また、mapオブジェクトを行配列にプッシュしているため関数にreturn ステートメントは必要ありません。

 const rows = [];
        let a = this.props.bcn;
        // console.log(a);
        if(a != undefined) {
            Object.keys(a).map(function(value, keyIndex){
                 console.log(a[value]);
                 rows.push(<InfoRow beaconKey={value} beaconValue={a[value]} key={keyIndex}/>)
             })
        }

InfoRow コンポーネントでは、この値を表示できます

class InfoRow extends Component {
    render() {
        return (
            <tr>
                <td>{this.props.beacon}</td>
                <td>{this.props.beaconValue}</td>
            </tr>
        )
    }
}

beaconsDetail コンポーネントを次のように変更することもできます

class BeaconDetails extends Component {


        constructor(props) {
        super(props);

        this.toggle = this.toggle.bind(this);
        this.state = {
          activeTab: '1'
        };
      }

      toggle(tab) {
        if (this.state.activeTab !== tab) {
          this.setState({
            activeTab: tab
          });
        }
      }

        render() {



            const row = [];

            // this.props.bcn.map( item => {
            //     return row.push(<InfoRows beacon={item}/>)
            // });

            return (


                <div className="col-md-6 mb-2">
                <Nav tabs>
                  <NavItem>
                    <NavLink
                      className={classnames({ active: this.state.activeTab === '1' })}
                      onClick={() => { this.toggle('1'); }}
                    >
                      Beacon Details
                    </NavLink>
                  </NavItem>
                  <NavItem>
                    <NavLink
                      className={classnames({ active: this.state.activeTab === '2' })}
                      onClick={() => { this.toggle('2'); }}
                    >
                      Advanced Details
                    </NavLink>
                  </NavItem>
                </Nav>
                <TabContent activeTab={this.state.activeTab}>
                  <TabPane tabId="1">

                    <div className="col-lg-6">

                      <table className="table table-clear">
                        <tbody>
                          {this.props.bcn && 
                            Object.keys(this.props.bcn).map(function(keyName, keyIndex){

                                return <InfoRow beacon={keyName} beaconValue={a[keyName]}key={keyIndex}/>
                             })}
                        </tbody>
                      </table>
                     </div>
    .
                  </TabPane>

                  <TabPane tabId="2">

                    <div className="col-lg-6">
                      <table className="table table-clear">
                        <tbody>
                          {row}
                        </tbody>
                      </table>
                     </div>

                  </TabPane>

                </TabContent>
              </div>

            )

        }


    }

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

ログアウトしてからログインした後にデータが表示されない-reactjs

分類Dev

ReactJS:マップされたデータが表示されない

分類Dev

ReactJSキーが表示されない

分類Dev

ReactJsのAPIから配列のデータを取得したい

分類Dev

'url'属性を使用すると、ReactJSがサーバーからデータをフェッチしない

分類Dev

CodePenにReactJSコンポーネントが表示されない

分類Dev

axiosフェッチ後にデータが表示されない(ReactJs)

分類Dev

親からsrcが渡されたときにReactJS画像が表示されない

分類Dev

ReactJsに表示されないRedditAPIプレビュー画像

分類Dev

JqueryDatatableボタンがReactjsに表示されない

分類Dev

Imgがimgタグreactjsに表示されない

分類Dev

require.contextを使用してreactjsに画像が表示されない

分類Dev

サーバーから取得したマーカーが表示されない

分類Dev

Reactjs APIから取得した配列データを表示する方法は?

分類Dev

ReactJSでは、APIからデータをロードしているときにモーダルボディとフッターが2回表示されます

分類Dev

mysqlサーバーからデータが表示されない

分類Dev

Swift-UserDefaultsから取得した後、TableViewにデータが表示されない

分類Dev

ReactJSナビゲーションバーが正しく表示されない

分類Dev

フォームの検索ボタンがクリックされたときにAPIからデータを取得し、ReactJSの別のページにデータを表示します

分類Dev

サーバーから角度テーブルに動的データを取得しようとしましたが、最初の行しか表示されていません

分類Dev

ReactJSコンポーネントに表示されるビデオが更新されない

分類Dev

Reactjsではテーブルにデータが表示されていません

分類Dev

レデューサーでストアが変更されたときにuseSelectorが更新されない。ReactJS Redux

分類Dev

ReactJSコンポーネントが表示されない

分類Dev

reactjsを使用してテーブルのAPIから取得したデータを表示する方法

分類Dev

コンソールログの値がReactJSに表示されないのはなぜですか

分類Dev

ReactJSでボタンが正しく表示されない

分類Dev

フロントエンドreactjsに製品が表示されない

分類Dev

Reactjsで状態が変更されているときに、onDragEndのスライダーからデータを取得します

Related 関連記事

  1. 1

    ログアウトしてからログインした後にデータが表示されない-reactjs

  2. 2

    ReactJS:マップされたデータが表示されない

  3. 3

    ReactJSキーが表示されない

  4. 4

    ReactJsのAPIから配列のデータを取得したい

  5. 5

    'url'属性を使用すると、ReactJSがサーバーからデータをフェッチしない

  6. 6

    CodePenにReactJSコンポーネントが表示されない

  7. 7

    axiosフェッチ後にデータが表示されない(ReactJs)

  8. 8

    親からsrcが渡されたときにReactJS画像が表示されない

  9. 9

    ReactJsに表示されないRedditAPIプレビュー画像

  10. 10

    JqueryDatatableボタンがReactjsに表示されない

  11. 11

    Imgがimgタグreactjsに表示されない

  12. 12

    require.contextを使用してreactjsに画像が表示されない

  13. 13

    サーバーから取得したマーカーが表示されない

  14. 14

    Reactjs APIから取得した配列データを表示する方法は?

  15. 15

    ReactJSでは、APIからデータをロードしているときにモーダルボディとフッターが2回表示されます

  16. 16

    mysqlサーバーからデータが表示されない

  17. 17

    Swift-UserDefaultsから取得した後、TableViewにデータが表示されない

  18. 18

    ReactJSナビゲーションバーが正しく表示されない

  19. 19

    フォームの検索ボタンがクリックされたときにAPIからデータを取得し、ReactJSの別のページにデータを表示します

  20. 20

    サーバーから角度テーブルに動的データを取得しようとしましたが、最初の行しか表示されていません

  21. 21

    ReactJSコンポーネントに表示されるビデオが更新されない

  22. 22

    Reactjsではテーブルにデータが表示されていません

  23. 23

    レデューサーでストアが変更されたときにuseSelectorが更新されない。ReactJS Redux

  24. 24

    ReactJSコンポーネントが表示されない

  25. 25

    reactjsを使用してテーブルのAPIから取得したデータを表示する方法

  26. 26

    コンソールログの値がReactJSに表示されないのはなぜですか

  27. 27

    ReactJSでボタンが正しく表示されない

  28. 28

    フロントエンドreactjsに製品が表示されない

  29. 29

    Reactjsで状態が変更されているときに、onDragEndのスライダーからデータを取得します

ホットタグ

アーカイブ