首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从输入React获取值(react-rails gem)

无法从输入React获取值(react-rails gem)
EN

Stack Overflow用户
提问于 2019-06-15 20:51:49
回答 1查看 25关注 0票数 0

我正在使用React和react-rails gem。

代码语言:javascript
复制
var MeventShow = createReactClass({

getInitialState() {
 return {editable: false }
},

handleDelete(id) {
  this.props.handleDelete(id)
},

handleEdit() {
  var titler  = this._title.value;
  console.log('in handleEdit', this.state.editable, name);
  this.setState({editable: !this.state.editable})
},

render() {
var mevent = this.props.mevent
var title = this.state.editable ? <input type='text' id="inputShowTitle"     ref={(c) => this._title = c} defaultValue={mevent.title} /> : <h4 id="showTitle" onDoubleClick={this.handleEdit}>{mevent.title}</h4>
return (
  <div className="row">
    {title}
  </div>  
)
}
})

当我尝试运行handleEdit()时,我得到类似于this._title is undefined的错误。它出现在handleEdit()的第一行。如果我在render方法中使用没有条件部分的相同代码,它工作得很好。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-15 21:10:25

可以在<input />渲染后(在setState回调中)获取该值,如下所示:

代码语言:javascript
复制
var MeventShow = createReactClass({

  getInitialState() {
    return {editable: false }
  },

  handleDelete(id) {
    this.props.handleDelete(id)
  },

  handleEdit() {
    this.setState({editable: !this.state.editable}, () => {
      var titler  = this._title.value;
      console.log('in handleEdit', this.state.editable, name);
    })
  },

  render() {
    var mevent = this.props.mevent
    var title = this.state.editable ? <input type='text' id="inputShowTitle"     ref={(c) => this._title = c} defaultValue={mevent.title} /> : <h4 id="showTitle" onDoubleClick={this.handleEdit}>{mevent.title}</h4>
    return (
        <div className="row">
          {title}
        </div>
    )
  }
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56610566

复制
相关文章

相似问题

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