Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
N
Neos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
love_飞影
Neos
Commits
eeeeb3f9
Commit
eeeeb3f9
authored
Nov 29, 2022
by
Chunchi Che
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add observeStore
parent
83c0f275
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
21 additions
and
1 deletion
+21
-1
src/store.ts
src/store.ts
+21
-1
No files found.
src/store.ts
View file @
eeeeb3f9
/*
/*
* 全局状态存储模块
* 全局状态存储模块
* */
* */
import
{
configureStore
}
from
"
@reduxjs/toolkit
"
;
import
{
configureStore
,
Unsubscribe
}
from
"
@reduxjs/toolkit
"
;
import
joinedReducer
from
"
./reducers/joinSlice
"
;
import
joinedReducer
from
"
./reducers/joinSlice
"
;
import
chatReducer
from
"
./reducers/chatSlice
"
;
import
chatReducer
from
"
./reducers/chatSlice
"
;
import
playerReducer
from
"
./reducers/playerSlice
"
;
import
playerReducer
from
"
./reducers/playerSlice
"
;
...
@@ -18,5 +18,25 @@ export const store = configureStore({
...
@@ -18,5 +18,25 @@ export const store = configureStore({
},
},
});
});
// Ref: https://github.com/reduxjs/redux/issues/303
export
function
observeStore
<
T
>
(
select
:
(
state
:
RootState
)
=>
T
,
onChange
:
(
prev
:
T
|
null
,
cur
:
T
)
=>
void
):
Unsubscribe
{
let
currentState
:
T
|
null
=
null
;
const
changeHook
=
()
=>
{
const
nextState
=
select
(
store
.
getState
());
if
(
nextState
!==
currentState
)
{
onChange
(
currentState
,
nextState
);
currentState
=
nextState
;
}
};
const
unsubscribe
=
store
.
subscribe
(
changeHook
);
changeHook
();
return
unsubscribe
;
}
export
type
RootState
=
ReturnType
<
typeof
store
.
getState
>
;
export
type
RootState
=
ReturnType
<
typeof
store
.
getState
>
;
export
type
AppDispatch
=
typeof
store
.
dispatch
;
export
type
AppDispatch
=
typeof
store
.
dispatch
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment