2015-11-02 3 views
0

Использование backbone-react-component Я пытаюсь создать список задач. Если вы посмотрите на snipplet при условии, что вы увидите основные переменные tasksList и tasksListChild, из которых мой код до сих пор, кажется, отображает до _createTaskChild Но рендеринг после этого я ничего не имею, буквально, даже не ошибка в окне консоли. Я положил console.log, чтобы лучше разобраться здесь, где вещи вроде проваливаются? .. console.log(model.get('task_id')); выйдет на консоль без проблем. console.log('hi') однако, нет. Я надеюсь, что сюда придет дополнительный набор глаз, которые могут сказать мне, где я испортился.ReactJS Родитель не рендеринг Дети

var tasksListChild = React.createClass({ 
    mixins: [BackboneReactMixin], 
    render: function() { 
     console.log('hi') 
     return (
      <span onClick={ this._handleTaskClick }>nothing</span> 
     ); 
    }, 
    _handleTaskClick: function (event) { 
     console.log(this.props) 
    } 
}); 


var tasksList = React.createClass({ 
    mixins: [BackboneReactMixin], 
    render: function() { 
     return (
      <div className="list-group js__page-list-group-tasks"> 
      { 
       this.getCollection().map(this._createTaskChild) 
      } 
      </div> 
     ); 
    }, 
    _createTaskChild: function (model) { 
     console.log(model.get('task_id')); 
     return (
     <a className="list-group-item"> 
      <tasksListChild key={model.get('task_id')} model={model} /> 
     </a> 
     ); 
    } 
}); 
+0

Что this.getCollection() возвращает массив? –

+0

Его функциональность, предлагаемая mixin, позволяет преодолевать реакцию и позвоночник. Насколько я понимаю, он берет собранную коллекцию, чтобы реагировать, и прикрепляет слушателей к ней, которая будет работать с реакцией. Но в этом же случае в этом случае предполагается, что коллекция передана и использует карту, чтобы разбить ее на отдельные модели для каждого дочернего представления в этом случае, если я правильно понял. – chris

+0

Вам нужно знать, что возвращает getCollection, чтобы вы знали, что вы сопоставляете. Ключ = {model.get ('task_id')} предполагает, что объект имеет встроенную в него функцию get. Это необычно. –

ответ

0

Будет ли это работать.

_createTaskChild: function (model) { 
 
     var taskID = model.get('task_id'); 
 
     console.log(taskID); 
 
     return (
 
     <a className="list-group-item"> 
 
      <tasksListChild key={taskID} model={model} /> 
 
     </a> 
 
     ); 
 
    }

Смежные вопросы