Я новичок в ReactJS. Я хочу иметь возможность устанавливать некоторые свойства компонента React, а затем иметь доступ к нему из компонента React-компонента. Но я не совсем уверен, как это сделать. Например, рассмотрим следующие два класса:Как получить доступ к данным в компоненте, реагирующем на ребенка, из основного компонента-ответчика
export default class SubWindow extends React.Component {
click(event)
{
this.myCollection.push({name:'receiptNum',value:$(event.currentTarget).html()});
}
render()
{
return (
<ul>
<li onClick={this.click.bind(this)}>0</li>
<li onClick={this.click.bind(this)}>1</li>
<li onClick={this.click.bind(this)}>2</li>
<li onClick={this.click.bind(this)}>3</li>
</ul>
);
}
}
export default class MainWindow extends React.Component {
click(event)
{
console.log(SubWindow.myCollection);
}
render()
{
const SubWindow = require('./SubWindow').default;
return (
<SubWindow />
<button onClick={this.click}>Log subwindow array</button>
);
}
}
В принципе, я хочу SubWindow иметь свойство myCollection
, которое просто массив объектов JSON. myCollection
заполняется каждым щелчком по элементу списка.
Позже, я хочу иметь возможность console.log(SubWindow.myCollection)
, когда я нажимаю кнопку в родительском окне. Мой вопрос, как я могу получить доступ к SubWindow.myCollection
от компонента-компонента-родителя?
Реагирующая архитектура подходит к этому по-другому: любой компонент может иметь реквизит и состояние. Все реквизиты по определению уже известны родителям. И состояние не должно быть доступно родителям. Эта [официальная страница реакции] (https://facebook.github.io/react/docs/thinking-in-react.html) объясняет принцип – wintvelt