簡體   English   中英

如何從 map 函數中的 forEach 返回一個 div?

[英]How can I return a div from forEach inside map function?

我正在 React 中構建一個新組件來顯示過濾器。 我的過濾器數據如下所示:

{countries: [0: {value: 'England'}, 1: {value: 'Australia'}], continents: []}

在我的渲染函數中,我想為對象(英格蘭、澳大利亞)內的每個值返回一個 div。 目前,我沒有得到任何渲染到 Dom 的東西。

render() {
        const {i18n, t} = this.props;
    
        return <div className={'filter'}>
            <ul className={'filter-list'}>
                {
                    Object.keys(this.props.filters).map(i => {
                        this.props.filters[i].forEach(
                            element => {
                                console.log('element', element)
                                return <p>{element.value}</p>
                            }
                        )
                    })
                }
            </ul>
        </div>;
    }

有誰知道我怎樣才能實現這個/正確返回值?

forEach不返回任何內容。 您需要使用map代替:

{
  Object.keys(this.props.filters).map((i) => {
    // Switched to .map and added `return`
    return this.props.filters[i].map((element) => {
      return <p>{element.value}</p>;
    });
  });
}

此代碼將創建一個二維元素數組,但 react 支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM