在我的UsedComponents
组件中,我有一个映射的单选按钮列表,每个单选按钮都返回componentType
作为值。
this.props.usedComponents.map((component, index) => (
<RadioButton
key={index}
id={component.componentType}
icon={ButtonIco}
label={component.componentName}
name="select"
value={component.componentType}
inputClass={classes.RadioInput}
labelClass={classes.RadioLabel}
selected={component.selected}
handleChange={this.props.selectComponent}
/>
))
我的状态如下:
constructor(props) {
super(props);
this.state = {
components: components,
usedComponents: [components[0], components[2], components[3]],
};
this.selectComponentHandler = this.selectComponentHandler.bind(this);
}
components
是一个导入的对象数组,每个对象看起来都像这样:
{
componentType: "headerLogoNavigation",
componentName: "Header 02",
padding: "small",
fontSize: "small",
fontColor: "#1f1f1f",
fontFamily: "Sans-serif",
backgroundColor: "#ffffff",
image: placeholderLogo,
selected: false,
isEditing: false,
margins: false,
roundCorners: "none",
mobile: "false"
}
在我的Page
组件中,我试图将selectComponentHandler
道具传递给我的UsedComponents
组件,该组件应根据所选单选按钮的值选择一个组件并设置其状态到selected: true
。要获得额外的好处,它应该将任何先前选择的组件的状态设置为selected: false
。
到目前为止,我设法弄清楚了如何选择组件,但是我无法更新其状态。我在放弃之前创建该处理程序的最终尝试如下:
selectComponentHandler = event => {
this.setState(prevState => {
let selected = prevState.usedComponents.filter(item => item.componentType === event.target.value);
selected.selected = 'true';
return { selected };
});
};
,这是一种尝试将prevState
内的setState
过滤为与单选按钮componentType
相匹配的event.target.value
并设置其状态的方法,但我搞砸了逻辑或语法,我的脑袋即将爆炸,因此我无法弄清楚自己做错了什么。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
我知道了。有点黑,但是可以用。
int main(int argc, char *argv[])
{
unsigned char output[16] = {0x00}; // copied from code
// .... (some steps to calculate output[i])
for (i = 0; i < 16; i++)
{
printf("%02X ", output[i]); // output[i] is an array of 16-byte hex values
}
return 0;
}