我有本机上的一个小应用程序。父屏幕组件进行API调用,并使用该API调用的结果来更新父状态“结果”变量(因此this.state.results将包含“ n”个对象)。在父级的渲染方法中,我正在使用this.state.results.map将子级组件添加到屏幕上。每个子组件都采用卡的形式。每张卡上都有一个收藏夹图标,该图标可以单击,当收藏夹为true时,该图标为绿色,如果收藏夹为false,则该图标为灰色。
在单击图标的事件处理程序时出现了我的问题。我可以通过将回调从父级传递给子级并在父级中执行来实现,也可以在子级组件中实现,这就是我目前的方式。
事件处理程序再次调用服务器上的API,以更新用户记录以添加新的收藏夹。该部分也可以正常工作,但是,我还需要解决的是如何使图标在收藏时从灰色更新为绿色,或者在单击为“不喜欢”时从绿色更新为灰色。我正在用我的API调用很好地更新服务器,但是我还不太确定如何更新子组件上的图标。我试图在卡组件上使用局部状态,但结果有些复杂,我还不太清楚如何更新父组件状态。我可以在父级上触发事件处理程序,并且可以从子级中传递一些参数,但是我不确定如何更新父级状态,或者如果我这样做的话,甚至会更新带有图标的子级组件。
将非常感谢以前处理此类问题的人员的经验。
谢谢。