ReactJS从json数据内部数组设置状态 - 多个数组

时间:2016-02-16 22:14:31

标签: javascript arrays json reactjs

我有一个json文件,它是一个存储另一个包含我想要的另一个数组的字段的数组。我有一个ajax请求,将pitching字段存储到状态数组pitchers我有两个按钮,单击时将传递一个等于json文件中team_flag属性的值。

<button className="btn" onClick={this.handleClick.bind(this, 'home')}>{homeTeamName}</button>
<button className="btn" onClick={this.handleClick.bind(this, 'away')}>{awayTeamName}</button> 

方法:

handleClick: function(teamFlag) {
    // setState of pitchers to whichever team is clicked (home, away)
    // this.setState({ pitchers: this.state.pitchers.teamFlag})???
    console.log(teamFlag);
}

如何设置pitchers 状态,以便它将采用与所点击的pitcher对应的team_flag数组? (即如果我点击homeTeam,它将存储pitcher下面的"team_flag": "home"数组。下面是json文件

     "pitching":[
        {
           "pitcher":[
              {"name": "Billy", "hand": "right"}
           ],
           "team_flag":"away",
        },
        {
           "pitcher":[
              {"name": "Joe", "hand": "right"}
           ],
           "team_flag":"home",
        }
     ],

1 个答案:

答案 0 :(得分:0)

假设您在names(matriz) <- gsub(strsplit(names(matriz), "_"), paste0(substr(names(matriz)[[1]], 1, 3), names(matriz))) 键下的状态中拥有整个“投球”数组,您可以这样:

pitching

如果仅用于演示目的,我不会将结果保存在状态中,而是保存teamFlag并在render方法中调用提到的代码。

React很聪明,知道如果teamFlag或投球阵列发生变化,那么它需要重新渲染。

编辑:

var pitchers = this.state.pitching.find(function(team) {
  return team.team_flag === teamFlag;
});

this.setState({ pitchers: pitchers.pitcher });