Я думал, что это будет просто, и ответ, вероятно, таков, и я просто что-то упускаю, но у меня проблемы с обновлением компонента заголовка / макета в зависимости от того, на какой странице я нахожусь.
Код мудрый, я только что установил шаблон ASP.NET Core 2.0 , который использует React с Redux .Я знаком с React, но TypeScript и Redux для меня новы, поэтому, надеюсь, у меня возникнет проблема с синтаксисом и макетом, поскольку я могу сделать это в отдельном проекте React.Если вы создадите новый проект в Visual Studio по этому шаблону, вы увидите код, который я пытаюсь изменить (Создать> Проект> Базовое веб-приложение ASP.NET> React.js и Redux).
Файл макета TypeScript (ClientApp/components/Layout.tsx
) - это то место, куда я хочу добавить:
<h1>{ this.state.title }</h1>
... и далее используйте тег Header для загрузки компонента Header, который содержит заголовок.
Затем я хочу изменить заголовок в зависимости от того, нахожусь ли я на странице «Домой», «FetchData» или «Счетчик», и я представляю, что это просто базовая строка, заданная для каждого файла компонента.
Если вы можетеНе открывайте файл проекта по какой-либо причине, вот макет, с которым я работаю:
Компонент макета (здесь должен быть указан заголовок)
import * as React from 'react';
import { NavMenu } from './NavMenu';
export interface HeaderState {
title: string;
}
export class Layout extends React.Component<{}, {}> {
public render() {
return <div className='container-fluid'>
// !!!!---> Create a <Header /> component that includes the page title, set on a page by page basis
<div className='row'>
<div className='col-sm-3'>
<NavMenu />
</div>
<div className='col-sm-9'>
{ this.props.children }
</div>
</div>
</div>;
}
}
Я бы потенциально включил больше компонентного кода для тех, кто не может использовать проект Visual Studio, но он довольно раздутый с большим количеством кода, который здесь не применим.Я просто подумал, что кто-то может помочь, не нуждаясь в этом, но с радостью предоставлю в случае необходимости!
Любая помощь или указатели в правильном направлении, с благодарностью!Извиняюсь, если этот вопрос и ответ где-то.Я гуглил и искал ТАК, но не повезло.