ReactJS: Я пытаюсь сделать <ul>
с использованием Reactjs.Я создал 2 компонента, один для отдельных <li>
, а другой для <ul>
.Я сделал это так, чтобы я мог обрабатывать события / анимации индивидуально для каждого из них.Теперь я хочу хранить каждый <li>
компонент в одном свойстве в состоянии <ul>
компонент .Я хочу, чтобы это было сделано до монтирования компонента <ul>
. Когда компонент <ul>
будет отображаться, все компоненты <li>
также должны отображаться из состояния <ul>
.Как я могу это сделать?
В свойстве <ul>
состояния есть несколько <li>
компонентов!Предполагается, что они получены с сервера в зависимости от активности клиента в веб-приложении.
Я попытался сделать это, создав функцию , которая будет вызывать setState компонента <ul>
,и обновите свойство с помощью <li>
компонентов. Но при вызове его в render () выдает предупреждение
Warning: Cannot update during an existing state transition (such as within `render`). Render methods should be a pure function of props and state.
Вот код
//CartItemLI component is the <li>
class CartItemLI extends React.Component {
constructor(props)
{
super(props);
this.state = {
....
....
};
}
render()
{
return(
....
....
);
}
}
// Cart component is the <ul>
class Cart extends React.Component
{
constructor(props)
{
super(props);
this.state = {
....
....
//products property should store <CartItemLI />
products: []
}
}
//I tried invoking initItems() in the render(), but it gives the warning
initItems() {
for(var i = 0; i < this.state.numberOfItems; i++)
{
var products = this.state.products;
this.setState((prevState, props) => {
products: products.push(
<CartItemLI ....*props*.... />
)
})
}
}
render()
{
this.initItems();
// I want {this.state.products} from state
return (
<ul>
{this.state.products}
</ul>
)
}
}