如何顯示在組件以下減速器(myData
)做:如何在地圖對象中呈現減速
const initialState = [ // <= STATE AS ARRAY
{
id: '01',
name: 'Name One',
number: 11
},
{
id: '02',
name: 'Name Two',
number: 22
}
];
const initialStateNew = { // <= STATE AS OBJECT
1: {
id: '01',
name: 'Name One',
number: 11
},
2: {
id: '02',
name: 'Name Two',
number: 22
}
}
export default function myData (state = initialStateNew, action) {
switch (action.type) {
case "somthing":
return {
...state
}
default:
return state
}
}
我已經combinedReducers這一個,人稱其爲myData
和使用mapStateToProps
和mapDispatchToProps
到將減速器映射到組件中。
現在,下面的代碼工作使用initialState
時:
const renData = this.props.myData.map((data, idx) => {
return (
<View key={idx}>
<TouchableOpacity
onPress={() => Alert.alert("ID: ", data.id)}
>
<Text style={styles.welcome}>{data.id} - {data.name} - {data.number}</Text>
</TouchableOpacity>
</View>
)
});
代碼工作的原因,而是一個數組。如何在renData
中映射對象initialStateNew
? {createUI}
:
EDIT1
this.props.newData從mapStateToProps
const createUI =() => {
let uiItems = [];
for(let i in this.props.newData)
uiItems.push(<Text key={data[i].id}> {data[i].name} </Text>)
return uiItems;
}
使用在View
到來。收到錯誤:
EDIT2
const createUI =() => {
let uiItems = [];
for(let i in this.props.newData)
uiItems.push(
<Text key={this.props.newData[i].id}>
{this.props.newData[i].name}
</Text>
)
return uiItems;
}
const renData = this.createUI.map((data, idx) => {
return (
<View key={idx}>
<TouchableOpacity
onPress={() => Alert.alert("ID: ", data.id)}
>
<Text style={styles.welcome}>{data.id} - {data.name} - {data.number}</Text>
</TouchableOpacity>
</View>
)
});
[ReactJS中的對象循環]可能重複(https://stackoverflow.com/questions/45606360/loop-on-object-in-reactjs) –
謝謝@MayankShukla。我已閱讀過,但有點令人困惑。你能告訴我,如果有另一種方式比'地圖'。除非需要,否則我不想使用它。我認爲地圖更多地用於數組,對嗎? – Somename
yes'map'是數組,因此我們首先需要使用Object.keys或Object.values然後使用map。 –