首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我有一个从商店接收数据的组件。如何更新接收到的数据并在更改时重新呈现组件

我有一个从商店接收数据的组件。如何更新接收到的数据并在更改时重新呈现组件
EN

Stack Overflow用户
提问于 2019-01-04 03:01:33
回答 1查看 46关注 0票数 0

我有一个存储,它为我提供了密码对象数组,例如:

代码语言:javascript
复制
const passwords = [{
    id: 'hjgkjhkjl',
    password: 'jhckjdhf',
    createdAt: 'jan 3rd, 2019'
  },
  {
    id: 'uygkjhkj',
    password: 'kdjhfkjdhf',
    createdAt: 'jan 3rd, 2019'
  }
]

我可以在我的组件中以this.props.passwords身份访问此密码

我正在尝试将它们作为带有按钮(更新/确认)的列表填充到UI上-我使用组件级别的状态在它们之间切换

因为这是一个组件级别的状态,如果我点击一个按钮,所有的按钮都会发生变化

以下是我的代码

代码语言:javascript
复制
class Passwords extends React.Component {

  constructor(props) {
    super(props)
    this.state = {
      disabled: false

    }
    this.handleUpdate = this.handleUpdate.bind(this)
  }

  handleUpdate(element) {
    // this.context.executeAction(removePassword, element.createdAt)
    // this.context.executeAction(fetchPasswords)
    this.setState({
      disabled: !this.state.disabled,
    })
  }

  render() {

    const data = [
      {
        password: "passwordone",
        createdAt: "Jan 2, 2019"
      },
      {
        password: "passwordtwo",
        createdAt: "Jan 2, 2019"
      }
    ];

    return (
      <div>
        {data.map((element) => {
          return (
            <div>
              <input value={element.password} disabled={!this.state.disabled}/>
              <span style={{marginLeft: "15px"}}> {element.createdAt} </span>
              <span style={{marginLeft: "15px"}}>
                <button onClick={() => this.handleUpdate(element)}> 
                  {this.state.disabled ? "Confirm" : "Update"}
                </button> 
              </span>
            </div>
          )
        })}
      </div>
    )
  }
}

ReactDOM.render(<Passwords/>, document.getElementById('root'));
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/16.6.3/umd/react.production.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/16.6.3/umd/react-dom.production.min.js"></script>
<div id='root'>

</div>

需要一个更好的方法来解决这个问题

下面的Link提供了一个工作示例

id对于密码项目是唯一的-只需为单击的按钮切换预期结果更新/确认

提前感谢

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54028302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档