저는 React (Angular 1에서 나온 것)에 상당히 익숙하며, 다소 놀랐습니다. 다차원 객체를 통해 반복되는 테스트 스크립트를 dom에 바인딩합니다.내 React 구성 요소를 다시 렌더링하는 올바른 방법은 무엇입니까?
그런 다음 setTimeout에 래핑 된 객체에 새 항목을 추가합니다. ReactDOM.render를 호출하여 React 구성 요소를 다시 렌더링하는 가장 좋은 방법은 무엇입니까?
var items = [
{ name: 'Matt', link: 'https://google.com' },
{ name: 'Adam', link: 'https://bing.com' },
{ name: 'Luke', link: 'https://yahoo.com' },
{ name: 'John', link: 'https://apple.com' }
];
var RepeatModule = React.createClass({
getInitialState: function() {
return { items: [] }
},
render: function() {
var listItems = this.props.items.map(function(item) {
return (
<li key={item.name}>
<a className='button' href={item.link}>{item.name}</a>
</li>
);
});
return (
<div className='menu'>
<h3>The List</h3>
<ul>
{listItems}
</ul>
</div>
);
}
});
ReactDOM.render(<RepeatModule items={items} />, document.getElementById('react-content'));
setTimeout(function() {
var newline = { name: 'Added item', link: 'https://amazon.com' };
items.push(newline);
ReactDOM.render(<RepeatModule items={items} />, document.getElementById('react-content'));
}, 2000);
훨씬 이해 :)