Я нубы в срабатываем/перевождите, и я ищу, чтобы создать модальное представление следующих за этим-правилами:Могу ли я избежать повторного рендеринга родительского компонента обработчика маршрута при изменении маршрута?
- , зависимый
- URL, который является общим
- , который оптимизирован
Причина, связанная с зависимостью URL-адреса, не оптимизирована, она переименовывает родителя.
Пример: У меня есть представление пространства имен просмотра на «/» пространств имен, которые печатают все пространства имен и когда я открываю «/ пространства имен/редактировать», который откроет модальное представление пространств имен являются повторно вызывать. Как не перерегистрировать список имен?
Ниже Router
<Route path="namespaces" component={NamespaceList}>
<Route path="edit" component={NamespaceEdit}/>
<Route path="create" component={NamespaceCreate}/>
</Route>
NamespacesList компонента
function NamespacesList({ push, children }) {
console.log("rendered !")
return (
<div>
NamespacesList
<p>
<Link to="/namespaces/create">Create</Link>
<br />
<Link to="/namespaces/edit">Edit</Link>
</p>
{children}
</div>
)
}
NamespacesCreate компонента (напечатаны внутри модально)
const NamespacesCreate = function() {
return (
<Modal>
NamespacesCreate
<p>
<Link to="/namespaces">Back to namespaces list ?</Link>
</p>
</Modal>
)
}
Использовал случай: Я нахожусь на /templates/create
(namespacelist рисует в задней части модального, в консоли rendered !
печатается тогда, когда я нажимаю ссылку, чтобы вернуться к исходному URL-адресу /templates
, rendered !
напечатан снова.
Так что есть способ «оптимизировать» его, а не переименовать namespaceList или мне нужно выбрать между ними, или я ошибаюсь?
Я знаю, что рендеринг очень дешев в реактиве, но есть ли решение избежать повторного рендеринга? Мой родительский компонент снова перерисовывается, что показывает мерцание на экране, и я хочу избежать повторного рендеринга, чтобы не произошло никакого мерцания. @Dan Abramov –