javascript - 如何将按钮列表重构为 map 功能

标签 javascript arrays reactjs button

在我的刽子手游戏中,玩家可以单击 一封信(按钮) 猜测的字母显示 如果正确,它将附加到隐藏单词 (_ _ _ _ )

但我想重构一长串按钮 变成一个简单的 map 函数 为数组中的每个字母(即字母表)创建一个按钮 理想情况下,该按钮在单击后会消失。

类似于:

arr = [alphabet]
arr.map(letter=>{
return <button>{letter}</button> 
})

但我不知道如何将我的列表转换为这样的函数

export class Input extends Component {

  handleClick = (event) => {

    if (this.props.guesses.includes(event.target.value)) {

    } else {
      this.props.makeGuess(event.target.value.toLowerCase())
    }
    // event.target.setAttribute('disabled', '')

  }

  render() {
    return (<div>

      <button onClick={this.handleClick} value="A">A</button>
      <button onClick={this.handleClick} value="B">B</button>
      <button onClick={this.handleClick} value="C">C</button>
      <button onClick={this.handleClick} value="D">D</button>
      <button onClick={this.handleClick} value="E">E</button>
      <button onClick={this.handleClick} value="F">F</button>
      <button onClick={this.handleClick} value="G">G</button>
      <button onClick={this.handleClick} value="H">H</button>
      <button onClick={this.handleClick} value="I">I</button>
      <button onClick={this.handleClick} value="J">J</button>
      <button onClick={this.handleClick} value="K">K</button>
      <button onClick={this.handleClick} value="L">L</button>
      <button onClick={this.handleClick} value="M">M</button>
      <button onClick={this.handleClick} value="N">N</button>
      <button onClick={this.handleClick} value="O">O</button>
      <button onClick={this.handleClick} value="P">P</button>
      <button onClick={this.handleClick} value="Q">Q</button>
      <button onClick={this.handleClick} value="R">R</button>
      <button onClick={this.handleClick} value="S">S</button>
      <button onClick={this.handleClick} value="T">T</button>
      <button onClick={this.handleClick} value="U">U</button>
      <button onClick={this.handleClick} value="V">V</button>
      <button onClick={this.handleClick} value="W">W</button>
      <button onClick={this.handleClick} value="X">X</button>
      <button onClick={this.handleClick} value="Y">Y</button>
      <button onClick={this.handleClick} value="Z">Z</button>
    </div>)
  }
}

最佳答案

你的渲染方法应该是:

render() {
  const alphabet = [...'ABCDEFGHIJKLMNOPQRSTUVWXYZ'];

  return (
    <div>
      {alphabet.map((letter, index) => <button key={} onClick={this.handleClick} value={letter}>{letter}</button>)}
    </div>
  );
}

关于javascript - 如何将按钮列表重构为 map 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50892718/

相关文章:

javascript - 避免传递请求对象

javascript - 如何在D3.js中使用translateX和translateY?

javascript - 在 Magento 中设置 Disqus 多个规范 URL

javascript - 为什么Script DOM Element可以异步加载

Java 比较数组数据,无论大小或顺序如何

javascript - 将内容推送到数组

Javascript 代码会根据每个请求额外重新加载每个页面一次

c++程序在字符数组中插入单词

reactjs - 是否可以创建 React Hook 工厂函数?

reactjs - React 如何返回另一个组件的 div 和变量值