Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在React+中执行更新操作的位置;有反应吗?_Reactjs_Redux_React Redux - Fatal编程技术网

Reactjs 在React+中执行更新操作的位置;有反应吗?

Reactjs 在React+中执行更新操作的位置;有反应吗?,reactjs,redux,react-redux,Reactjs,Redux,React Redux,假设我有一个音乐组件连接到redux商店中的“播放”道具 更新“播放”时,我想相应地更新播放状态(播放、暂停等)。但是,这不会影响组件的外观。所以我想知道在哪里执行更新操作 当道具更新时,我使用componentWillReceiveProps来控制播放,它可以工作,但根据React团队的说法,这显然是不正确的使用,该方法将被弃用 您需要在onClick函数中调度一个具有所选播放状态的操作,该操作通过一个reducer传递并更新存储的状态。如果使用react redux库中的connect函数将

假设我有一个音乐组件连接到redux商店中的“播放”道具

更新“播放”时,我想相应地更新播放状态(播放、暂停等)。但是,这不会影响组件的外观。所以我想知道在哪里执行更新操作


当道具更新时,我使用componentWillReceiveProps来控制播放,它可以工作,但根据React团队的说法,这显然是不正确的使用,该方法将被弃用

您需要在onClick函数中调度一个具有所选播放状态的操作,该操作通过一个reducer传递并更新存储的状态。如果使用react redux库中的connect函数将组件正确连接到存储,则该组件将自动更新组件的呈现

当你更新一个没有被任何容器组件使用的状态时,什么也不会发生。你可以使用普通的道具,在actions和Reducer中进行更新,但是我应该在哪里控制媒体呢?我不希望组件重新渲染,因为没有任何可视更改。在这种情况下,您将无法避免重新渲染组件,因为状态正在更改是否为可视。也就是说,如果出于某种原因,您只想更改数据库中的某个值或某个外部变量,那么您可以直接调用不会导致重新渲染的函数。我不认为这会有什么帮助,因为我认为组件会想知道当前状态。在状态更新之后,我在哪里调用函数而不会导致重新呈现?在React组件生命周期内,在呈现方法之前调用shouldComponentUpdate。如果此函数返回false,则不会进行重新渲染。我明白了。谢谢我只是不知道最好的做法是什么。如果我有一个音乐组件,我希望将播放控制保持在该组件内,并且我不希望在我简单地更改播放时(假设没有任何视觉变化)该组件重新渲染。