Javascript 在映射中未调用组件
下面是我的一段代码,其中未渲染内部组件,即Javascript 在映射中未调用组件,javascript,reactjs,loops,iteration,components,Javascript,Reactjs,Loops,Iteration,Components,下面是我的一段代码,其中未渲染内部组件,即MultiSelectAssetDropdown。console.log('comes here')没有出现,这显然意味着循环没有执行。但是,以前的console.log打印得很好。。所以我知道这个组件是渲染的。此外,循环执行后的组件渲染也非常好 <ul className="collapsible multiDropdownTag"> { console.log('field',this.state.configDefaultVal)}
MultiSelectAssetDropdown
。console.log('comes here')
没有出现,这显然意味着循环没有执行。但是,以前的console.log
打印得很好。。所以我知道这个组件是渲染的。此外,循环执行后的组件渲染也非常好
<ul className="collapsible multiDropdownTag">
{ console.log('field',this.state.configDefaultVal)}
{ configDefaultVal.map(function (field) {
console.log('comes here');
return (
<MultiSelectAssetDropdown placeholder="" icon=""
label={field.defaultValues.DisplayName}
value={field.selectedValues}
disabled={this.state.disabledVal}
selectedValues={field.selectedValues}
className="multiselect"
defaultValues={field.defaultValues.values}
fieldValue="field1" id="field1"/>
)}, this)
}
<MultiSelectAssetDropdown placeholder="" icon=""
label="Sites"
value={abc}
siteId={this.state.details.siteId}
disabled={this.state.disabledVal}
selectedValues={abc}
defaultValues={abc}
fieldValue="sites" id="sites"/>
</ul>
此FinalFieldArray稍后设置为configDefaultVal状态
数组看起来像:[field1:array(0),field0:array(0)]
为什么?
这不是一个数组,正确的数组如下:
const array = [];
array.put([]);
array.put([]);
console.log(array) // => [Array(0), Array(0)]
更新您的finalFieldArray
以使map
工作:
const finalFieldsArray = [];
_.forEach(configVal, function(selField,key){
_.forEach(configDefaultVal, function(defField, keys) {
if(key == keys) {
finalFieldsArray.push({
key: key,
value: {
selectedValues: selField,
defaultValues: defField
}
});
}
})
})
数组看起来像:[field1:array(0),field0:array(0)]
为什么?
这不是一个数组,正确的数组如下:
const array = [];
array.put([]);
array.put([]);
console.log(array) // => [Array(0), Array(0)]
更新您的finalFieldArray
以使map
工作:
const finalFieldsArray = [];
_.forEach(configVal, function(selField,key){
_.forEach(configDefaultVal, function(defField, keys) {
if(key == keys) {
finalFieldsArray.push({
key: key,
value: {
selectedValues: selField,
defaultValues: defField
}
});
}
})
})
好。。。如果map函数不运行,可能是阵列中没有任何内容吗?@JohnRuddell抱歉,我将发布阵列,以及我在控制台日志中获得的阵列,为什么不发布它是什么?在代码中。而不是这些毫无意义的控制台logswell。。。如果map函数不运行,可能是阵列中没有任何内容吗?@JohnRuddell抱歉,我将发布阵列,以及我在控制台日志中获得的阵列,为什么不发布它是什么?在代码中。代替这些毫无意义的控制台。logsI编辑了我的问题,给出了我如何制作这个数组/对象的想法。我更新了我的aswer,但你应该关注对象而不是数组。这种方法工作得非常好,谢谢,顺便问一下,你能告诉我以前的方法有什么问题吗?JS数组只使用数值到索引值,所以数组[2]可以工作,但数组['key']不行。我编辑了我的问题,想知道我是如何制作这个数组/对象的。我更新了我的答案,但你应该关注对象而不是数组。这种方法非常好,谢谢,顺便问一句,你能告诉我以前的方法有什么问题吗?JS数组只使用数值来索引值,所以数组[2]可以工作,但数组['key']不能。