2016-12-20 58 views
0

將字符串放置爲Javascript中的道具,如下所示:我該如何設計它? 綠色:{ 室:7 }, 紫:{ 根:8 } }, }, { 名:傑羅姆 星期一:{ 黑色:{ 室:5 }, 橙:{ 根:6 } }, 星期二:{ 黃色:{ 室:7 }, 紫:{ 根:8 }} , }, ]ReactJS + ReactRouter:如何定義字符串作爲對Javascript中道具的引用?

+0

您首先需要弄清楚爲什麼'ownProps.params'未定義。 – therobinkim

+0

你可以發佈你調用mapStateToProps的代碼嗎? û使用該調用簡檔組件' – diedu

+0

- [R <鏈接 到= {'/ StudentsBoard /千電子伏/星期一/ blue'} 風格= {{的backgroundColor: '黃色',textDecoration: '無'}} >'?? –

回答

0

確保您的過濾器在state.students真的回來的東西。

您的錯誤消息是說它是未定義的。

我不知道你的函數做什麼,但我可以看到它預計這樣的一些數據,它的工作原理:

const state = {students: [{name: "beto", day: { color: "red"}}]}; 

const props = {params: {name: 'beto', day: { color: "red" }}}; 

mapStateToProps(state, props); 

,但你可以看到。我不確定是否真的是你的數據結構。正如我看到你的代碼是想要一個顏色是天對象的屬性。

請記住,在這種情況下,您必須使用括號對象訪問符表示法來正確獲取您的數據。檢查此代碼:

let prop = 'sun'; 

let obj = {sun: 'red' }; 

console.log(obj.prop) // returns undefined 
// explanation: returns undefined because obj does not have a prop named prop 

console.log(obj[prop]) // returns red 
// explanation: returns red, because it first solve the value of prop variable to 'sun' and then uses sun as prop name over your object. in the end it makes obj.sun instead of obj.prop 
+0

請看看數據結構的更新。 'state.students'正確返回,但它表示'day'和'color'不能被讀取。這可能是因爲他們是字符串嗎?我現在看到 –

+0

。在這種情況下,您必須使用括號對象訪問符表示法來正確獲取您的數據。檢查下面的代碼: 'let prop ='sun'; let obj = {sun:'red'}; console.log(obj.prop)//返回undefined console.log(obj [prop])//返回紅色' –

+0

對不起,你能用我提供的代碼顯示一個例子嗎? –

相關問題