javascript - React Javascript - setState 问题和 copyToClipboard 问题与可缩放按钮 + p 渲染

标签 javascript reactjs onclick setstate

为工作构建一个聊天站点(自动响应),并且在可缩放渲染中设置按钮/段落对的状态有困难。

ID是用JSON写的,所以不是唯一创建 Active=value= 也来自相同的 JSON

我想做的: 我希望能够单击按钮并将具有相同 ID 的段落中的文本复制到剪贴板。

代码(相关片段):

    export default class MenuExamplePointing extends  Component  {
      state = { activeItem: 'Transfer list' } // functioning setState for MENU-select
      value = { activeItem: '1'}              // functioning setState for MENU-select
      valuetwo = { activeId: '1'}             // non-functioning setState for BUTTON/P

    Wtest(state){
      const { activeId } = this.valuetwo

    if (state.value === "1"){

    return(  
           <div className="contentHolder">
              {PostData.map((postDetail) => {
                 return  <div> 
                    <button 
                      value= {postDetail.value}
                      className="descriptive"
                      active={activeId === postDetail.value.toString()}
                      id={postDetail.value}
        //onClick={this.handleIdClick}
        //onClick={() => this.handleIdClick }
                      >
                         {postDetail.name}
                      </button>
                    <p 
                     active={activeId === postDetail.value}
                     id={postDetail.value}
                     value={postDetail.value}
                     className="insertText" >             
                     {postDetail.content}
                    </p>
                  </div>
                })}
          </div>   

     )
    }

      handleIdClick = (e, { value }) => {
         this.setState({ activeId: value })};

      handleItemClick = (e, { name, value }) => {
         this.setState({ activeItem: name, value })};

    render() {
        const { activeItem } = this.state

    return (  
      <div>

        <Menu pointing>
          <Menu.Item
            name='Transfer List'
            active={activeItem === 'Transfer List'}
            onClick={this.handleItemClick}
            value = "1"

          />
    ....

        <segment>
           <div>{this.Wtest(this.state)}</div>
        </segment>

最佳答案

通过选择 currentTarget.value 并从按钮中删除 id,我能够为每个生成的输入获取值并操作其 innerHTML (copyToClipboard)。因此,即使我没有正确回答我的问题,我也找到了一个合适且可扩展的解决方案。有兴趣的,这里是新代码:

  bar(e){
    var equals = e.currentTarget.value;
    document.getElementById(equals).innerHTML = "test";
  }

  Wtest(state){
  if (state.value === "1")
    return(  
       <div className="contentHolder">
          {PostData.map((postDetail) => {
            return  <div> 
          <button 
            value={postDetail.value.toString()}
            className="descriptive"
            onClick={this.bar}
          >{postDetail.name}
          </button>
          <p 
           id={postDetail.value}
           value={postDetail.value.toString()}
           className="insertText" >             
           {postDetail.content}
            </p>
            </div>
          })}  
      </div>   

  )
}

关于javascript - React Javascript - setState 问题和 copyToClipboard 问题与可缩放按钮 + p 渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58397711/

相关文章:

JavaScript 在按键上更改图像

javascript - <td> 不能作为 `div` 的 child 出现?

javascript - 在 body 标签内声明函数会导致 "Function not defined"

javascript - onClick() JavaScript 可见性更改

javascript - 如果类 ="X"禁用单击,jQuery

javascript - 如何检查模型中已创建的条目?

javascript - 用下划线或其他东西组合 2 个 MongoDB 集合对象?

javascript - react-router 返回一个页面 你如何配置历史记录?

javascript - babel 与 browserify 导致箭头函数出现语法错误

javascript - 在不使用 HTML 的情况下将参数传递给 javascript onclick