Проще говоря, я хотел бы создать интерфейс, с помощью которого пользователь может вставлять объекты в div.
Пользователь должен иметь возможность выбирать размещенные объекты и изменять их настройки (цвет, размер, вращение. .).
Я новичок, чтобы отреагировать и воплотить свои идеи в жизнь.
class Elements extends React.Component {
constructor(props) {
super(props);
this.displayData = [];
this.state = {
showdata: this.displayData,
elementData: {
color: "red",
}
};
this.addDiv = this.addDiv.bind(this);
this.switchColor = this.switchColor.bind(this);
this.giveConsoleData = this.giveConsoleData.bind(this);
};
giveConsoleData(){
console.log(this.state);
}
switchColor() {
if(this.state.elementData.color == "red"){
this.setState({
showdata: this.displayData,
elementData: {
color: "blue",
}
});
}else if(this.state.elementData.color == "blue"){
this.setState({
showdata: this.displayData,
elementData: {
color: "red",
}
});
}
}
addDiv() {
this.displayData.push(<div style={this.state.elementData} ><FaArrowUp size={32} /></div>);
this.setState({
showdata : this.displayData
});
}
render() {
const items = this.state.showdata.map(i => <li>{i}</li>);
return (
<div>
<Button type="submit" block variant="primary" onClick={this.addDiv}>Primary</Button>< br/>
<Button type="submit" block variant="primary" onClick={this.switchColor}>ChangeColor</Button>< br/>
<Button type="submit" block variant="primary" onClick={this.giveConsoleData}>Consolenlog</Button>< br/>
{items}
<div style={this.state.elementData}><h1>I Can Change</h1></div>
</div>
);
}
}
export default Elements;
Теперь моя проблема в том, что заголовок h1
может менять цвет, но объекты, которые имеют уже размещены не могут.
Есть ли у меня совершенно неправильный подход?
Может быть, когда вы набираете sh элемент div, текущее значение цвета сохраняется, а не элемент цвета из состояния?