Nested lists of components #436
              
                
                  
                  
                    Answered
                  
                  by
                    sirenkovladd
                  
              
          
                  
                    
                      denartha10
                    
                  
                
                  asked this question in
                Q&A
              
            -
| Hi, I have a nested list of componets inside another componet but all I get rendered is  I have put together a toy problem with the same issue and was hoping someone might be able to help me out with a solution that would render the components correctly const {div, h1, button} = van.tags
const ChildNode = ({color, text}) => div(
  {
    style: `background-color: ${color}; width: 50px; aspect-ratio: 1/1;`
  },
  h1(text)
)
const Parent = () => {
	const nodes = van.state([])
  
  return div(
    {
     id: 'random-sample-id',
     style: 'height: 100vh; display: flex; flex-direction: column;'
    },
    button(
    	{
      	onclick: () => nodes.val = [ ...nodes.val,  { color: '#e4e4e4', text: 'new' } ]
      }, 
      'ADD'
     ),
    () => nodes.val.map(n => ChildNode({id: n.id, color: n.color, text: n.text}))
  )
  
}
van.add(document.body, Parent()) | 
Beta Was this translation helpful? Give feedback.
      
      
          Answered by
          
            sirenkovladd
          
      
      
        Apr 16, 2025 
      
    
    Replies: 1 comment 2 replies
-
| I think you need () => div(nodes.val.map(n => ChildNode({id: n.id, color: n.color, text: n.text}))also have a look at  | 
Beta Was this translation helpful? Give feedback.
                  
                    2 replies
                  
                
            
      Answer selected by
        denartha10
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment
  
        
    
I think you need
also have a look at
vanX.listhttps://vanjs.org/x#reactive-list, it might help prevent rendering