2017-06-01 65 views
0

專家!React render child from

我遇到了React問題。我試圖通過回調從孩子渲染父母。假設addTask函數會調用父組件的呈現。但它不工作,我不知道爲什麼。 這是代碼。將不勝感激的任何幫助。

var tasks = [ 
{ type : "Personal", 
task_list : [ 
"Visit laundty", 
"Mend bike", 
"Call mom"] 
}]; 


var AddTask = React.createClass({ 
getInitialState : function() { 
return { 
    add: false 
}; 
}, 
addTask: function(e) { 
    e.preventDefault(); 
    var task = document.getElementById('taskText').value; 
    var arr = tasks[0].task_list.push(task);  
    console.log(tasks[0].task_list); 
    this.setState({add: true}); 
    this.props.callback; 
}, 
render: function() { 
    return (
     <div 
     className='user_task'> 
      <textarea 
      className = 'usr_task_text' id='taskText' > 
      </textarea> 
      <button 
      type = 'button' 
      className='btn btn-primary usr_new_action_btn' 
      onClick = {this.addTask}> Done 
      </button> 
     </div> 
      ) 
    }}); 


var Tasks = React.createClass({ 
    render: function() { 
    var lists = this.props.ddata.map(function(item, index) { 
    return (
    <li key={index} 
     className='user_task'> 
      {item} 
     </li> 
     ) 
    }) 
    return <ul> {lists} </ul> ; 
} 
}); 


var App = React.createClass({ 
    getInitialState : function() { 
    return { 
    update: 1 
    }; 
}, 
update: function(e) { 
    console.log("updated!"); 
}, 
render: function() { 
    var chpt; 
    var key_ = 0; 
    var p_ = new Array(); 
    if (tasks.length > 0) { 
    var chpt = tasks.map(function(item, index) { 
    return (
    <div key = {index}> 
     <div 
     className = "user_header"> 
      <span className="user_header_span" > 
      {item.type} 
      </span> 
      </div > 
      <AddTask callBack = {i => this.update}/> 
      <Tasks ddata = {item.task_list} /> 
    </div> 
    ) 
    }) 

} else { 
    chpt = <p></p> 
} 
return (
<div className="row"> 
    <div className = "jumbotron col-md-3 user_act"> 
    {chpt} 
    </div> 
</div> 
); 
} 
}); 

ReactDOM.render(
<App />, 
document.getElementById('main_') 
+0

發生了什麼?有錯誤嗎?請包括[mcve]。 –

+0

這裏您錯過了小錯字')'ReactDOM.render( , document.getElementById('main_'))。你面臨的錯誤是什麼? – vijayscode

回答

1

您引用了this.props.callback但未調用它。添加圓括號以調用該功能:

this.props.callback(); 
相關問題