2016-03-17 1 views
0

Я знаю, что это хорошая практика для использования как можно большего количества функций без состояния, но я столкнулся с проблемой, когда компонент родительского контейнера отображает, что, конечно же, вызовет каскадную повторную обработку его дочерних элементов. Функции без гражданства не имеют (насколько мне известно) выбора не для рендеринга.Как предотвратить ненужное повторное рендеринг функций без гражданства?

Как я должен оптимизировать свое приложение до рендеринга и использовать функции без гражданства?

+0

>> Апатриды функции не имеют возможности (насколько я знаю) выбора не оказывать. Не могли бы вы указать на документацию? – sarbbottam

ответ

0

Используйте функцию высшего порядка:

function once(fn) { 
    let called = false; 
    let result = null; 
    return function() { 
    if(!called) { 
     called = true; 
     result = fn.apply(null, arguments); 
    } 
    return result; 
    }; 
} 

const DumbComponent = once(() => { 
    console.log("Rendering dumb component"); // will only ever happen once 
    return (<div>I am a component</div>); 
}); 

CodePen

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