2016-06-07 3 views
0

Я новичок в css, и я не могу понять, как позиционировать один компонент внутри другого в React. Я могу показать их отдельно, но когда я помещаю один в другой. Я не вижу этого внутри. Я думаю, что проблема в CSS файлеКак создать один компонент реакции внутри другого?

#homePage{ 
    section{ 
     h1{ 
     text-align: left; //this is shown 
     } 
     //here I want to add the other React component but I don't know how 

    } 
} 

и метод визуализации:

<div id="homePage"> 
    <Component1> 
    <section> 
    <h1>Hi</h1> 
    <Component2> 
    </Component2> 
    </section> 
    </Component1> 
</div> 

Спасибо.

+0

Привет, вопрос о применении стилей к вложенным компонентам в реакции? или это о размещении некоторых компонентов внутри другого компонента? – semuzaboi

+0

Это всего лишь один компонент внутри другого – DSDS

+0

Пожалуйста, отправьте еще код – omerts

ответ

0

Из того, что я понимаю, вы могли бы иметь атрибут Classname, определенный внутри вашего HTML-теги COMPONENT2 в.

class Component2 extends Component{ 

render(){ 

    return(
     <section className="component2styles"> 
      This is Component2 
     </section > 
    ); 
} } 

Теперь вы можете изменить ур таблицы стилей, как

#homePage{ 
    section{ 
     h1{ 
     text-align: left; //this is shown 
     } 
     //components2 style will be nested here 

    section.component2styles{ 
     border:1px solid blue; 
    } 

    } 
} 

Или в качестве альтернативы вы можете попробовать инлайн-стили, кажется, набирает много тяги в React развития.

render(){ 
var styleobj={color:'red'}; 
return(<section style={styleobj} > This is Component 2 </section>) 
} 
0

Вы добавили некоторый класс/id в свой Component2, например <Component2 className="my-specific-class" />, чтобы его стиль?

(кстати, я надеюсь, что ваш CSS меньше/дерзость один, чтобы вложенные стили, как вы делали)

EDIT Добавляя Classname Attr. к вашему COMPONENT2, я имею в виду, добавив его в COMPONENT2 визуализации метод как

render: function() { 
    return (
     <div id="your-id" className="your-class"> 
      some html here 
     </div> 
    ); 
} 
+0

Да, это просто. Нет. Я не добавлял id или className. Но когда я пытаюсь добавить его, он говорит, что className не существует. Должен ли я добавить его в качестве реквизита в компоненте2? постскриптум Я новичок во всем этом – DSDS

+0

Да, мой пример не был полным. Если метод Component2 render возвращает что-то вроде '

some html here
', вы должны добавить атрибут className, например '
some html here
' (я отредактирую свой ответ, чтобы избежать недоразумений в будущем :)!) –

+0

Да, но мой вопрос заключается в том, должен ли я и как могу ли я добавить этот компонент внутри #homePage. Спасибо – DSDS