2017-06-04 2 views
1

Ich übergebe this.props.childred in textarea mit defaultValue, aber es gibt mir Fehler Uncaught Error: Wenn Sie defaultValue auf einem liefern, Kinder nicht übergeben.Wie übergebe ich this.props.children an Textarea

, was die andere Alternative ist, oder gibt es einen besseren Weg, um die Werte von Bassing

import React, {Component} from 'react'; 

class Update extends Component { 

    constructor(props){ 
     super(props); 
     this.state = { 
      editing:false 
     } 

     this.renderEdit = this.renderEdit.bind(this) 
    } 

    edit(){ 
     this.setState({ 
      editing:true 
     }) 

    } 
    remove(){ 
     alert("remove") 
    } 
    save(){ 
     this.setState({ 
      editing:false 
     }) 
    } 

    renderNormal(){ 
     return (
      <div className="container"> 

     <div className="content"> {this.props.children}</div> 
     <button onClick={this.edit.bind(this)} className="edit" >Edit </button> 
     <button onClick={this.remove} className="remove" >Remove </button> 
     </div> 
     ); 

    } 
    renderEdit(){ 

     console.log('this.props ', this.props) 

console.log('this.props.children ', this.props.children) 

     return (
     <div className="container"> 



     <textarea ref="newText" defaultValue={this.props.children} > </textarea> 
     <button onClick={this.save.bind(this)} className="edit" >Save </button> 
     </div> 
     ); 

    } 

    render(){ 
     var great = "awesome " 

     if(this.state.editing){ 
      return this.renderEdit(); 
     }else{ 
      return this.renderNormal(); 
     } 

    } 
} 
export default Update; 
+0

anstelle von 'this.props.children' sollte ein String-Prop -' this.props.text' gut für die Update-Komponente funktionieren. – vijayst

Antwort

2

Verwenden selbstschließ Syntax wie folgt:

<textarea ref="newText" defaultValue={this.props.children}/> 

Oder eigentlich, können Sie einfach den Raum entfernen zwischen <textarea> Tags auch.

+0

Dank Tharaka hat es funktioniert –

Verwandte Themen