В реагирующем маршрутизаторе 2 щелчок по компоненту «Ссылка» вызовет повторную визуализацию компонентов.
Я преобразовываю свой проект в реагирующий маршрутизатор 4, используя «NavLink» вместо «Link».Все работает, кроме этого: щелчок по «NavLink» не переопределяет мой компонент (обновляет мой список задач), он только меняет ссылку.
Что-нибудь, что я должен добавить где-нибудь, чтобы эта работа работала?Он отлично работает с реагирующим маршрутизатором 2 "Link".
Вот пример кода:
App.js:
const App = ({ match: { params } }) => {
return (
<div>
<AddTodo />
<VisibleTodoList filter={params.filter || 'all'} />
<Footer />
</div>
)
}
Footer.js:
const Footer = () => (
<p>
Show:
{" "}
<FilterLink filter="all">
All
</FilterLink>
{", "}
<FilterLink filter="active">
Active
</FilterLink>
{", "}
<FilterLink filter="completed">
Completed
</FilterLink>
</p>
);
Filterlink.js:
const FilterLink = ({ filter, children }) => {
return (
<NavLink
exact
to={filter === "all" ? "/" : `/${filter}`}
activeStyle={{ textDecoration: "none", color: "red" }}
>
{children}
</NavLink>
);
};
VisibleTodoList.js:
const mapStateToProps = (state, ownProps) => {
return {
todos: getVisibleTodos(
state.todos,
ownProps.filter
),
};
};
const mapDispatchToProps = (dispatch) => ({
onTodoClick(id) {
dispatch(toggleTodo(id))
},
});
const VisibleTodoList = connect(
mapStateToProps,
mapDispatchToProps
)(TodoList);