#javascript #reactjs #components #styles
#javascript #reactjs #Компоненты #стили
Вопрос:
Привет, я очень новичок в react и кодировании, поэтому, пожалуйста, объясните мне свои объяснения.
Я создал компонент в react с именем Header1. Я использовал динамический текст с использованием реквизитов, чтобы я мог изменять формулировку при каждом использовании компонента Header1. Мне интересно, как мне сделать это для стиля. Я бы хотел, чтобы на одной карточке был розовый текст, а на другой — синий текст. Пожалуйста, помогите! И заранее благодарю вас 🙂
Ниже приведено создание компонента Header1:
import React from 'react';
import WhiteMap from '../img/other/whiteWorld.png';
import HeaderScss from './_Header1.scss'
const header1 = (props, style)=>{
return <div className="main--container">
<header className="header--container__inside">
<section className="header--container__left">
<h1>
{props.headerTitle}
{style.headerTitleS}
</h1>
<p>
{props.headerDescription}
</p>
</section>
<section className="header--container__right">
<div className="header--pic">
<img src={WhiteMap} alt="World map with a circle highlighting Australia"/>
</div>
</section>
</header>
</div>
};
export default header1;
Ниже приведены основные App.js файл, в котором я дважды использую компонент Header1:
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import Navigation1 from './Navigation/Navigation1';
import Header1 from './Header/Header1';
import SaveMoney1 from './SaveMoney/SaveMoney1';
import Airports1 from './Airports/Airports1';
// import SydneyCards1 from './SydneyCards/SydneyCards1';
import ThingsYouShouldKnow1 from './ThingsYouShouldKnow/ThingsYouShouldKnow1';
// import BucketList1 from './BucketlistCards/BucketlistCards1';
// import Footer1 from './Footer/Footer1';
import styles from './appStyles.module.css';
class App extends Component {
render() {
return (
<div className="App">
<Navigation1 />
<Header1 headerTitle="Fly to" headerDescription=" Selia."/>
<SaveMoney1/>
<Airports1/>
<Header1 headerTitle="Things you should know" headerDescription ="Based on customer bookings,
{/* <BucketList1/> */}
{/* <SydneyCards1/> */}
{/* <Footer1/> */}
</div>
);
}
}
export default App;
Комментарии:
1. Без добавления библиотеки стилей вы могли бы: добавить prop для передачи стилей или className компоненту Header1 (т.Е.
<Header1 style={{ background: 'red' }} />
), а затем использовать эти стили или className при отображении корневого div в Header1. Другим вариантом было бы иметь набор доступных цветов с выбором того, какой цвет использовать через prop (т. Е.<Header1 color="primary" />
)2. возможно, я делаю это неправильно, но я добавил style в скобки на странице создания Header1, а затем сделал style={{ color:’red’}} в основном app.js страница, но она не работает:(
Ответ №1:
Одним из способов было бы использование стилей, как вы пытаетесь сделать в своем примере. Попробуйте сделать что-то вроде этого
const Header = (props) => {
return <h1 style={props.style}>{props.title}</h1>
}
И вы бы сделали это так
const App = () => {
return (
<div>
<Header title="My Header with Blue text" style={{color: "blue"}} />
<Header title="My Header with Red text" style={{color: "red"}} />
</div>
)
}
Примечание: вы можете сделать то же самое, передав CSS-класс в качестве реквизита вместо точного объекта style .
Комментарии:
1. Спасибо!!!!!!!!!!!!!!!! ЭТО ОЧЕНЬ ПОМОГЛО!!!!!
2. вы можете пометить это как решение, если оно решит вашу проблему @MayaWright. Я рад, что это помогло