Javascript 组件onPress函数中的渲染按钮显示最后一个i。自然反应

Javascript 组件onPress函数中的渲染按钮显示最后一个i。自然反应,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我试图从redux加载一个包含数组的组件(例如,test)。我能够创建按钮并具有正确的标题,但是,onPress功能没有显示正确的值 //expected outcome when press button "a" 0 //Outcome 2 类测试扩展了React.Component{ render(){ 变量按钮=[] 对于(var i=0;i ) } 返回( {按钮} ); } } 您需要定义let而不是var for (let i = 0; i < this.props.test

我试图从redux加载一个包含数组的组件(例如,
test
)。我能够创建按钮并具有正确的标题,但是,onPress功能没有显示正确的值

//expected outcome when press button "a"
0
//Outcome
2
类测试扩展了React.Component{
render(){
变量按钮=[]
对于(var i=0;i
)
}
返回(
{按钮}
);
}
}

您需要定义
let
而不是
var

for (let i = 0; i < this.props.test.length; i++) { // this.props.test = ["a","b"]
            buttons.push(
                <Button
                    title={this.props.test[i]}
                    onPress={() => console.log(i)}
                />
            )
        }
export default class Test extends React.Component {
  state={value:0}
  handleClick=id=>{
    this.setState({value:id})
  }
    render() { 
        let buttons;
        buttons = this.props.test.map(te=>
        <Button
            key={te}
            title={te}
            onPress={() => this.handleClick(te)}
          />
        )
        return (
            <View>
                {buttons}
                <Text>{this.state.value}</Text>
            </View>
        );
    }
}