this.setStateは、配列の最後の値のみをプルしています

ロリ

私はReactを初めて使用し、外部JSONファイルからこのネストされた配列をレンダリングする方法がわかりません。送金は、アクセスしてレンダリングする必要のあるネストされた値を持つ唯一の配列です。コンソールに正常にログを記録しますが、setStateでは分離しません。これがひどいように見える場合はお詫び申し上げます。

class App extends Component {
  constructor(props){
    super(props);
    this.state = {
      data,
      rName: "",
      rDescription: "", 
    }
  }

  componentDidMount(){
    console.log("Mounted!");
    this.display();
  };

  display = () => {
    for (var i = 0; i < data.length; i++){
      var remittanceList = data[i].Remittance;
     // console.log(remittanceList);
      for (var x = 0; x < remittanceList.length; x++){
        var rName = remittanceList[x].PayorName;
        var rDescription = remittanceList[x].Description;
        console.log(rName + rDescription);
        this.setState({rName, rDescription});

      }
    }
  }


  render() {
    var { rName, rDescription } = this.state;

    return (
      <div className="App">
      <Title/>
      {this.state.data.map((each, index) => (
      <PayInfo key={index}
        name={each.Payee.Name}
        fax={each.Payee.Fax}

        pan={each.Payment.PAN}
        cvv={each.Payment.CVV}
        exp={each.Payment.Exp}

        payorName={rName}
        description={rDescription}
      />
      ))}
      </div>
    );
  }
}
export default App;

そして、JSONファイルはこのようなものです。送金の量は非常に多いため、インデックスをハードコーディングして毎回検索することはできません。

[
  {
    "Payee": {
      "Name": "Bob",
      "Fax": "5555555555",
    },
    "Payment": {
      "PAN": 123456,
      "CVV": 123,
      "Exp": "1/2018"
    },
    "Remittance": [
      {
        "PayorName": "Me",
        "Description": "Hello World.",
      },
      {
        "PayorName": "You",
        "Description": "Hey world.",
      },
      {
        "PayorName": "Snoop",
        "Description": "Bye world.",
      }
    ]
  },

そして、これは私が最初に投稿すべきだったPayInfo.jsファイルです!これが私が以前に得た答えのいずれかを変えるかどうかわかりませんか?

import React from "react";
import "./PayInfo.css";

const PayInfo = props => (
<div>
    <div id="payee">
    <p>Payee</p>

        <p>{props.name}</p>
        <p>Fax: {props.fax}</p>

    </div>
    <hr></hr>

    <div id="payment">
        <p>Payment</p>
        <p>PAN: {props.pan}</p>
        <p>CVV: {props.cvv}</p>
        <p>Exp: {props.exp}</p>
    </div>
    <hr></hr>

    <div id="remittance">
        <p><strong>Remittance(s)</strong></p>
        <p>Payor: {props.payorName}</p>
        <p>Description: {props.description} </p>
    </div>
    <hr></hr>
    <hr></hr>


</div>
);

export default PayInfo;
user8599269

displayメソッドでは、forループ内の状態を設定しています。したがって、最後の値のみが状態に設定されます。以下のコードをお試しください。

display = () => {
let totalRemittanceArray = []
for (var i = 0; i < data.length; i++) {
  var remittanceList = data[i].Remittance;
  for (var x = 0; x < remittanceList.length; x++) {
    var rName = remittanceList[x].PayorName;
    var rDescription = remittanceList[x].Description;
    console.log(rName + rDescription);
    totalRemittanceArray.push({ rName, rDescription })
  }
}
this.setState({totalRemittanceArray})
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

foreachループは、$ _ POSTの最後の配列値のみを出力します

分類Dev

foreachループは、配列の最後の要素のみを出力します

分類Dev

PHP in_arrayは、最後の配列要素のみを検索しています

分類Dev

ループでは、すべての配列要素が最後の要素の値を取得します

分類Dev

私のコードは配列の最後の値のみを出力します

分類Dev

Javascript:ループは最後の値のみを出力します

分類Dev

Spread演算子は、forループの最後の値のみを追加しています

分類Dev

loop asynctaskandroidはループの最後の値のみを実行しています

分類Dev

PHP:Whileループは最後の値を配列に保存します

分類Dev

ある配列の値を別の配列に格納して全体として出力していても、配列は最後の値を出力します

分類Dev

セッションSetattributeは、ループから最後の値のみを取得しています

分類Dev

foreachは私の配列の最後のエントリのみを繰り返しています

分類Dev

foreachは私の配列の最後のエントリのみを繰り返しています

分類Dev

Foreachループは最後の配列値のみを保存しますが、var_dumpは異なる結果を表示します

分類Dev

配列をループして最後のアイテムのみを取得しますか?

分類Dev

forループのあるJavascript配列は、最後の要素のみを返します

分類Dev

threading.timerは、forループの最後の値のみを出力します

分類Dev

テーブルループは最後の値のみを更新します

分類Dev

Excelはすべてのデータを表示しません(1つの列の最後のセルといくつかの奇妙な値のみ)

分類Dev

ループは最後の値のみを取ります

分類Dev

ループ内のonclick値は、テーブルの最後の値に対してのみ機能します

分類Dev

ng-repeatは最後の値のみを表示しています

分類Dev

React JSXforループは最後の値のみを表示します

分類Dev

PHP配列は、最後の配列項目のみを表示します

分類Dev

Ruby配列:配列の配列の最後からのみ繰り返し値を保持します

分類Dev

文字列を2D文字列配列と比較し、配列の最後の値のみを比較します

分類Dev

CompletedEventとループしているDownloadFileAsyncは、最後のファイルのみを取得します

分類Dev

ArrayListは区切り文字ファイルから最後の値のみをコピーしています

分類Dev

&#160;を取得しています 文字列の最後の値

Related 関連記事

  1. 1

    foreachループは、$ _ POSTの最後の配列値のみを出力します

  2. 2

    foreachループは、配列の最後の要素のみを出力します

  3. 3

    PHP in_arrayは、最後の配列要素のみを検索しています

  4. 4

    ループでは、すべての配列要素が最後の要素の値を取得します

  5. 5

    私のコードは配列の最後の値のみを出力します

  6. 6

    Javascript:ループは最後の値のみを出力します

  7. 7

    Spread演算子は、forループの最後の値のみを追加しています

  8. 8

    loop asynctaskandroidはループの最後の値のみを実行しています

  9. 9

    PHP:Whileループは最後の値を配列に保存します

  10. 10

    ある配列の値を別の配列に格納して全体として出力していても、配列は最後の値を出力します

  11. 11

    セッションSetattributeは、ループから最後の値のみを取得しています

  12. 12

    foreachは私の配列の最後のエントリのみを繰り返しています

  13. 13

    foreachは私の配列の最後のエントリのみを繰り返しています

  14. 14

    Foreachループは最後の配列値のみを保存しますが、var_dumpは異なる結果を表示します

  15. 15

    配列をループして最後のアイテムのみを取得しますか?

  16. 16

    forループのあるJavascript配列は、最後の要素のみを返します

  17. 17

    threading.timerは、forループの最後の値のみを出力します

  18. 18

    テーブルループは最後の値のみを更新します

  19. 19

    Excelはすべてのデータを表示しません(1つの列の最後のセルといくつかの奇妙な値のみ)

  20. 20

    ループは最後の値のみを取ります

  21. 21

    ループ内のonclick値は、テーブルの最後の値に対してのみ機能します

  22. 22

    ng-repeatは最後の値のみを表示しています

  23. 23

    React JSXforループは最後の値のみを表示します

  24. 24

    PHP配列は、最後の配列項目のみを表示します

  25. 25

    Ruby配列:配列の配列の最後からのみ繰り返し値を保持します

  26. 26

    文字列を2D文字列配列と比較し、配列の最後の値のみを比較します

  27. 27

    CompletedEventとループしているDownloadFileAsyncは、最後のファイルのみを取得します

  28. 28

    ArrayListは区切り文字ファイルから最後の値のみをコピーしています

  29. 29

    &#160;を取得しています 文字列の最後の値

ホットタグ

アーカイブ