2016-11-17 40 views
0

我有一個列表組件,它從本地json文件獲取信息,如果我按照以下方式進行操作,則所有操作都按預期進行。當添加組件時反應最大調用堆棧

import React from 'react'; 
import caseStudies from './case-studies.json'; 

import CaseStudyItem from './case-study-list'; 

const CaseStudyList =() => { 

    const caseStudyItems = caseStudies.map(caseStudy => { 
     console.log(caseStudy); 
     return (
      <div key={caseStudy.name}>{caseStudy.name}</div> 
     ); 
    }); 


    return (
     <ul> 
      {caseStudyItems} 
     </ul> 
    ); 
} 

export default CaseStudyList; 

預期的案例研究數量打印出來沒有問題。

然而,如果我有以下

<CaseStudyItem key={caseStudy.id} caseStudy={caseStudy} /> 

更換caseStudies.map語句在div我得到了「最大規模調用堆棧超過誤差」如果我在裏面添加日誌語句就說明它吐出數百個項目。什麼會造成這種情況?

如果這裏需要的是CaseStudyItem組件,它現在只是空白用於測試目的。

import React from 'react'; 

const CaseStudyItem =() => { 

    return (
     <div>case Study</div> 
    ); 
} 

export default CaseStudyItem; 

回答

0

我認爲你在CaseStudyList的內部製造新的CaseStudyLists。這是因爲你(可能)從錯誤的文件導入:

import CaseStudyItem from './case-study-list'; 

也許應該

import CaseStudyItem from './case-study-item'; 

當你輸入這個樣子,你能說出任何你想要導入的變量,所以你儘管是CaseStudyItem組件創建者實際上是CaseStudyList組件創建者。

+0

哦,我是個笨蛋。謝謝,我盯着這幾個小時,不知道發生了什麼事。 –

+0

不要擔心,容易犯的錯誤。 – ArneHugo

+0

@Cody如果您不介意,請接受答案:) – ArneHugo

相關問題