带有反应组件的地图
maps with react components
我有下一个代码:
const compsMap = new Map([
['id', <TableHeaderColumn dataField={'id'} width='50' isKey autoValue={true} dataAlign='left' dataSort >{'id'}</TableHeaderColumn>],
['firstName', <TableHeaderColumn dataField={'firstName'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'First Name'}</TableHeaderColumn>],
['lastName', <TableHeaderColumn dataField={'lastName'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Last Name'}</TableHeaderColumn>],
['mobile', <TableHeaderColumn dataField={'mobile'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Mobile'}</TableHeaderColumn>],
['username', <TableHeaderColumn dataField={'username'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Username'}</TableHeaderColumn>],
['password', <TableHeaderColumn dataField={'password'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Password'}</TableHeaderColumn>],
]);
console.log('compsMap[id] = ' + compsMap['id']);
为什么我得到 compsMap['id'] 未定义?
请假设每个
<TableHeaderColumn... > ... </TableHeaderColumn>
定义明确
您的问题在于您尝试获取数据的方式。考虑以下示例
let map = new Map([
['id', 'foobar']
]);
console.log(map['id']) //undefined
对比
let map = new Map([
['id', 'foobar']
]);
console.log(map.get('id')) // 'foobar'
希望这对您有所帮助。
使用compsMap.get(key)
获取值。
检查这个例子:
const compsMap = new Map([
['id', "<TableHeaderColumn dataField={'id'} width='50' isKey autoValue={true} dataAlign='left' dataSort >{'id'}</TableHeaderColumn>"],
['firstName', "<TableHeaderColumn dataField={'firstName'} dataSort headerAlign='left' editable={JSON.parse('{type: 'textarea' }')}>{'First Name'}</TableHeaderColumn>"],
['lastName', "<TableHeaderColumn dataField={'lastName'} dataSort headerAlign='left' editable={JSON.parse('{'type': 'textarea' }')}>{'Last Name'}</TableHeaderColumn>"],
['mobile', "<TableHeaderColumn dataField={'mobile'} dataSort headerAlign='left' editable={JSON.parse('{'type': 'textarea' }')}>{'Mobile'}</TableHeaderColumn>"],
['username', "<TableHeaderColumn dataField={'username'} dataSort headerAlign='left' editable={JSON.parse('{'type': 'textarea' }')}>{'Username'}</TableHeaderColumn>"]
]);
console.log('compsMap[id] = ', compsMap.get('id'));
我有下一个代码:
const compsMap = new Map([
['id', <TableHeaderColumn dataField={'id'} width='50' isKey autoValue={true} dataAlign='left' dataSort >{'id'}</TableHeaderColumn>],
['firstName', <TableHeaderColumn dataField={'firstName'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'First Name'}</TableHeaderColumn>],
['lastName', <TableHeaderColumn dataField={'lastName'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Last Name'}</TableHeaderColumn>],
['mobile', <TableHeaderColumn dataField={'mobile'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Mobile'}</TableHeaderColumn>],
['username', <TableHeaderColumn dataField={'username'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Username'}</TableHeaderColumn>],
['password', <TableHeaderColumn dataField={'password'} dataSort headerAlign='left' editable={JSON.parse('{"type": "textarea" }')}>{'Password'}</TableHeaderColumn>],
]);
console.log('compsMap[id] = ' + compsMap['id']);
为什么我得到 compsMap['id'] 未定义?
请假设每个
<TableHeaderColumn... > ... </TableHeaderColumn>
定义明确
您的问题在于您尝试获取数据的方式。考虑以下示例
let map = new Map([
['id', 'foobar']
]);
console.log(map['id']) //undefined
对比
let map = new Map([
['id', 'foobar']
]);
console.log(map.get('id')) // 'foobar'
希望这对您有所帮助。
使用compsMap.get(key)
获取值。
检查这个例子:
const compsMap = new Map([
['id', "<TableHeaderColumn dataField={'id'} width='50' isKey autoValue={true} dataAlign='left' dataSort >{'id'}</TableHeaderColumn>"],
['firstName', "<TableHeaderColumn dataField={'firstName'} dataSort headerAlign='left' editable={JSON.parse('{type: 'textarea' }')}>{'First Name'}</TableHeaderColumn>"],
['lastName', "<TableHeaderColumn dataField={'lastName'} dataSort headerAlign='left' editable={JSON.parse('{'type': 'textarea' }')}>{'Last Name'}</TableHeaderColumn>"],
['mobile', "<TableHeaderColumn dataField={'mobile'} dataSort headerAlign='left' editable={JSON.parse('{'type': 'textarea' }')}>{'Mobile'}</TableHeaderColumn>"],
['username', "<TableHeaderColumn dataField={'username'} dataSort headerAlign='left' editable={JSON.parse('{'type': 'textarea' }')}>{'Username'}</TableHeaderColumn>"]
]);
console.log('compsMap[id] = ', compsMap.get('id'));