【发布时间】:2019-03-22 00:34:16
【问题描述】:
我已经处理这个问题两天了。无法在线找到解决方案,此时我认为我做错了。
所以这个应用程序的重点是单击按钮并放下一个苹果。单击该按钮会更改组件中树的状态和类名,从而导致其抖动。 Sass 动画完成了剩下的工作。但我不能改变一个苹果的类名。因此,不能为一个苹果制作动画。我认为它只是改变了所有这些,它们有点重叠。这不是我想要的。
不知道我是否处理错误,但这里是 app.js 的代码:
class App extends Component {
constructor(props){
super(props);
this.state = {
apples: [],
treeState: ''
}
}
componentWillMount(){
this.setState(
{
apples: [
{
id: '1',
status: 'present'
},
{
id: '2',
status: 'present'
},
{
id: '3',
status: 'present'
}
],
treeState: 'stagnant'});
}
render() {
return (
<div className="App">
<div className="App-header">
<img onClick={this.shakeTree.bind(this)} className="grab" alt="grab"/>
<Apples apples={this.state.apples}/>
<Tree treeState ={this.state.treeState}/>
</div>
</div>
);
}
shakeTree() {
var css = (this.state.treeState === "stagnant") ? "shaking" : "stagnant";
this.setState({"treeState":css});
this.dropApples();
}
dropApples(){
let apple;
var random = 2;
if(this.state.apples){
apple = this.state.apples.map(applemon => {
if(applemon.id==random){
this.setState(
{
apples: [
{
id: random,
status: 'falling'
}
]});
}
});
}
}
}
export default App;
我想要的是在不影响其他苹果的情况下将其中一个苹果的状态更改为“正在掉落”。例如,获取 id 为 2 的苹果并将其状态更改为 'falling'。
您能否告诉我如何完成或指出一些确切的资源来说明它是如何完成的。
【问题讨论】:
标签: javascript reactjs react-native components react-component