React组件无法通过if语句显示在.map中

问题描述 投票:0回答:2

请帮助。如果list.display = true,我有一个要加载的组件。我可以做一个控制台日志,以确认何时应该显示该列表并且它可以正常工作。但是,该组件不会加载。如果我将组件从.map循环中删除,它会完美运行。

谢谢

return (
        <div className="container"> 
            <h1>To Do App</h1>
            <p>Create a list:</p>
            <form>
                <label htmlFor="list">
                    <input type="text" name="list" id="list" onChange={e => setInputListName(e.target.value)}/>
                    <button onClick={addList}>Create List</button>
                </label>
            </form>

            <div className="listsContainer">
                {
                    lists.map( (list: listInterface, index:number) => 
                        (<button onClick={() => loadList(index)}>{list.listName}</button>)
                    )
                }
                {
                    lists.map( (list: listInterface, index:number) => {
                        if (list.display == true) {
                            <ToDoApp list={lists[0]} /> 
                            console.log("List " + list.listName + " ordered");
                        }
                    })
                }
            </div>
        </div>
    );
javascript node.js reactjs loops components
2个回答
0
投票

一个映射函数需要返回一个值。

lists.map( (list: listInterface, index:number) => {
    if (list.display) {
        console.log("List " + list.listName + " ordered");
        return <ToDoApp list={lists[0]} /> 
        }
    })

0
投票
    {
      lists.map((list: listInterface, index: number) => {
        if (list.display === true) {
         return <ToDoApp list={lists[0]} />

        }
      })
    }

在if条件中添加返回以呈现JSX

© www.soinside.com 2019 - 2024. All rights reserved.