heluxjs / helux Goto Github PK
View Code? Open in Web Editor NEWA reactive atomic state engine for React like.
Home Page: https://heluxjs.github.io/helux/
License: MIT License
A reactive atomic state engine for React like.
Home Page: https://heluxjs.github.io/helux/
License: MIT License
React 版本:16.13.1
Concent 版本: 2.4.4
开发环境下总能看到如下的警告:
Warning: Expected CC($$CcClass5) state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own `this.props`. Please file an issue.
in CC($$CcClass5) (created by CC($$CcClass7))
不影响功能
如下图所示 foo模块中的reducer如何访问到 bar模块中的 name 变量?
const bar= {
state: {
name:'bar'
},
}
const foo = {
state: { ... },
reducer: {
async changeNameCompose(name, moduleState, actionCtx) {
//这里如何访问到 bar 模块中的 name变量?
},
}
谢谢!
Demo
import {run, register} from 'concent'
run({
demo: {
state: { val: 1 }
}
})
@register('demo')
class Demo extends React.Component {
render() {
return <div>Demo</div>
}
}
export default Demo
then error
register.js:56 Uncaught TypeError: Class extends value #<Object> is not a constructor or null
this will work well
export register('editor')(Demo)
在mobx中可以监控到对象上字段或者数组的变化,比如arr.push的时候能自动触发ui刷新。但是concent中,只有新建clone一个数组setState才行。有什么好方法吗?如果每次一点小修改,就得把整个对象树或者数组clone,感觉开销太大了。
Hi, I cannot find any typescript related words in the documentation, is that mean there is no typescript support for this package ?
//state.js
const state = {
isLogin: false,
}
export default state
//watch.js
import { history, } from 'react-router-concent';
const watch = {
isLoginChange: {
fn: (newState, oldState, fnCtx) => {
newState ? history.replace('/') : history.replace('/login')
},
depKeys: ["isLogin"],
},
}
export default watch
//run.js
import {run, configure} from 'concent';
import {configureRoute} from 'react-router-concent';
import state from './state'
import watch from './state'
import * as reducer from './reducer';
run({
app: {
state,
reducer,
watch,
}
})
configureRoute()
get those error:
------------ CC WARNING ------------ 0.chunk.js:245584:20
retKey[isLogin] item type error 0.chunk.js:245584:20
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
用了两周1个问题,在组件外,如何获取和修改状态如何监控获取计算属性
在开发模式时,能否保持热更新前的状态呢?可配置?不然每次改一点js代码,又得在UI上点一圈才能回到刚才的状态
I am a typescript user, but this library just uses JSDoc provide type safe.
So i open this issue.
I think rebuild is a good idea, it can not only help users who use TypeScript, but also make this project more convenient to maintain.
I will help you and find more people to help you (possible).
加油!
uild error occurred
TypeError: Cannot read property 'replace' of undefined
1、可预测?怎么预测。
2、高性能?挂载了这么多东西,谈何高,有本事给出测试报告。
3、依赖标记,引用收集?体现在哪里,怕不是 ppt 库。
3、min size 24k,敢看也不敢用。
RangeError: Maximum call stack size exceeded
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
at Object.set (make-ob-state.js:14)
说实话,我不是很理解在API中加入computed跟watch这种;
我认为所有用户能够手动实现的功能,我们可以通过中间件去实现, 可以通过第三方库去实现, 而不应该由框架直接提供;
node_modules/concent/src/types.d.ts:1728:98 - error TS2344: Type 'undefined' does not satisfy the constraint 'Exclude<keyof RootState, number | symbol>'.
1728 export function getState<RootState extends IRootBase = IRootBase, M extends StrKeys = undefined>
package.json ↓
{
"author": "handpear",
"name": "vite-react-antd-concent-typescript-windicss-alloy-admin",
"version": "0.0.0",
"scripts": {
"dev": "vite --mode development",
"test": "vite --mode test",
"build": "tsc && vite build --mode production",
"preview": "vite preview"
},
"dependencies": {
"antd": "^4.16.5",
"concent": "^2.15.12",
"crypto-js": "^4.0.0",
"nprogress": "^0.2.0",
"qs": "^6.10.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-router": "^5.2.0",
"react-router-config": "^5.1.1",
"react-router-dom": "^5.2.0",
"umi-request": "^1.3.9"
},
"devDependencies": {
"@types/crypto-js": "^4.0.1",
"@types/node": "^15.12.5",
"@types/nprogress": "^0.2.0",
"@types/qs": "^6.9.6",
"@types/react": "^17.0.11",
"@types/react-dom": "^17.0.7",
"@types/react-router-config": "^5.0.2",
"@types/react-router-dom": "^5.1.7",
"@typescript-eslint/eslint-plugin": "^4.27.0",
"@typescript-eslint/parser": "^4.27.0",
"@vitejs/plugin-react-refresh": "^1.3.4",
"@vue/compiler-sfc": "^3.1.2",
"autoprefixer": "^10.2.6",
"concent-plugin-redux-devtool": "^2.0.8",
"eslint": "^7.28.0",
"eslint-config-alloy": "^4.1.0",
"eslint-plugin-react": "^7.24.0",
"less": "^4.1.1",
"postcss-assets": "^6.0.0",
"typescript": "^4.3.3",
"vite": "^2.3.8",
"vite-plugin-components": "^0.11.2",
"vite-plugin-html": "^2.0.7",
"vite-plugin-pages": "^0.14.2",
"vite-plugin-style-import": "^1.0.1",
"vite-plugin-windicss": "^1.0.4",
"vite-react-jsx": "^1.1.1",
"windicss": "^3.1.3"
}
}
您好,请教一下,我尝试着让concent接入redux-persist方案,它的接入方式需要劫持全部的reducer,concent有暴露此API吗?亦或者concent有自己的持久化实现方案?
因为 我们的系统 ,是有很多 tab控件的,每个tab控件在点击生成的时候,会去生成一个界面,常规上来说,这个界面 是 固定基于某种模块生成界面的,
但有些 是特殊 tab界面,是动态 请求一个 react 控件 所属的js,该 界面 可能得模块是 :dynamic
那么 在 最开始 run的时候,这个 dynamic 模块 是还没有注册的,因为这种 dynamic 模块还是挺多的,估计有二十多个,要是 每个都写好在 store里,就太繁琐啦
所以 希望最好 提供一个 多次调用 run 的api 功能
这样让想使用这个框架的人有点不放心啊
问题1:this.ctx.state和this.ctx.reducer语义的歧义
在使用this.ctx.state的时候,拿到的是本模块myModule的state,这个没问题很直观
但是同样的用this.ctx.reducer,拿到的却是全局的reducer,里面有
{"$$default":xxx,"$$global": yyy,"myModule": zzz}
this.ctx.reducer为什么不是自己模块的reducer?如果需要访问全局的,弄一个this.ctx.rootReducer不是更直观吗?
问题2:
通过dispatch传入字符串函数名的用法感觉很古老,不好用:
this.ctx.dispatch('doLogin', { userName: xxx, password: yyy });
连参数都还要手动再把名字写一次{name:xxx, password:yyy}),
最方便不应该是this.ctx.reducer.doLogin(xxx, yyy)
这样吗?
问题3:
目前使用起来最痛苦的是对于模块(因为模块models代码在ui之外的其它目录,仅仅是run的时候注册进去的,ide无感),因为没法ide智能感知代码,state和reducer使用的时候全靠手动写。不像平时用this.state或者hooks里面,都可以直接感知到,敲代码很方便
Concent doc [https://concentjs.github.io/concent-doc/] need to be translated to other languages, can any one help me, I will greatly appreciate it.
...
//## 连接模块,组装函数组件
const connectFn = connectDumb({state, setup, mapProps, module:'welcomeModule'});
...
执行时浏览器会报如下错误
react_devtools_backend.js:2273 Error: CcFragment or CcClass's prop connect is invalid, module[mapProps] not found in cc store
...
//## 连接模块,组装函数组件
const connectFn = registerDumb({state, setup, mapProps, module:'welcomeModule'});
...
在线示例中使用的也是registerDumb
方法
这里有一个bug,github地址是:https://github.com/henryzp/concent-test-demo
我的疑问是tab切换时,为什么tabContainer
组件会render两次。。
export async function changeTabComplex(
key: string,
moduleState: TihaiState,
actionCtx: IAC,
) {
await actionCtx.dispatch(changeActiveTabKey, key);
await actionCtx.dispatch(getTableList, { key, current: 1, pageSize: 10 });
await actionCtx.dispatch(getTableList, { key, current: 2, pageSize: 10 });
}
export async function changeTab(
key: string,
moduleState: TihaiState,
actionCtx: IAC,
) {
await actionCtx.lazyDispatch(changeTabComplex, key);
}
触发的是changTab
期望的结果是render一次。。。
复现方式:
影响:
项目编译失败, 无法运行
我参考例子
https://codesandbox.io/s/concent-guide-xvcej?file=/src/types/store.d.ts
在放数据模型的文件夹写了一个concent.d.ts
import {StateType, ReducerType, ComputedValType, cst, MODULE_VOID, ICtx, IAnyFn} from 'concent';
import appState from "./state";
import * as appReducer from './reducer';
import * as appComputed from './computed';
export type AppState = StateType<typeof appState>;
export type AppReducer = ReducerType<typeof appReducer>;
export type AppComputed = ComputedValType<typeof appComputed>;
export type RootState = {
[cst.MODULE_GLOBAL]: {},
[cst.MODULE_DEFAULT]: {},
[cst.MODULE_VOID]: {},
app: AppState,
}
export type RootRd = {
app: AppReducer,
}
export type RootCu = {
app: AppComputed,
}
export type ICtxM<P, S, M, Se = {}> = S extends IAnyFn ?
ICtx<RootState, RootRd, RootCu, P, ReturnType<S>, M, MODULE_VOID, Se> :
ICtx<RootState, RootRd, RootCu, P, S, M, MODULE_VOID, Se>;
reducer.js有一个函数
export function makeNewFirstName({name}, state, ctx) {
console.log(`reducer-23 name: `, name)
console.log(`reducer-23 state: `, state)
console.log(`reducer-23 ctx: `, ctx)
return {firstName: name}
}
但是我在fn控件上使用的时候
appCtx.moduleReducer.makeNewFirstName({name: 'AAA-' + Date.now()})
虽然调用成功,但是webstorm还是提示makeNewFirstName
函数不识别,没法点函数自己跳过去。
请问这是有哪里没弄对吗?
是否支持 next.js 数据获取: getStaticProps,getServerSideProps;
并且在服务端不会造成多个用户数据被共享(如果有缓存的话)?
实例中的computed及watch由于签名为字符串数组,是否可以支持props呢,在使用setup中又想监听某些props的变化,而这个限制貌似只有将监听通过内置hook写在组件内部,给人一种很不优雅的感觉。本质上都是监听,却又要通过组件内部来触发settings更新state达到效果。
虽然对于模块的状态在实例中监听可能会多次触发,但某些情况下的衍生数据对于写入模块显得有些小题大做。
理想状态:
computed监听state、props、refComputed、moduleState、moduleComputed
watch监听state、props、refComputed、moduleState、moduleComputed
想在一个函数组件内访问全局global状态以及当前业务模块状态,但是貌似API不支持访问,computed也是如此,访问出来都是undefined
I want to update state via setState in my custom function, but previous state is need.
export default function setup(ctx) {
const { initState, computed, watch, setState, sync, invoke } = ctx
initState({
judgedMap: {},
})
const judge = (id, v) => {
setState({
judgedMap: {
...state.judgedMap,
[id]: v,
},
})
}
return {
judge,
}
}
setState((pre) => {
console.log(pre)
return pre
})
is not work!
react 原型是:componentDidUpdate(prevProps, prevState, snapshot)
@register
之后 componentDidUpdate
调用收不到任何参数
我看了一下源码,好像确实 componentDidUpdate
没有把参数传递下来
尝试在RN中使用,但是加载编译就失败了
error: Error: Unable to resolve module `react-dom` from `node_modules\concent\src\core\base\append-dispatcher.js`: react-dom could not be found within the project.
Invalid hook call. Hooks can only be called inside of the body of a function component
React 16.12
Concent 1.5.87
为什么我点击addNum同时修改了num,bigxxx私有的,私有的不变化的?
https://codesandbox.io/s/shared-counter-forked-7bh0l?file=/src/App.js
支持next.js吗
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! Found: [email protected]
npm ERR! node_modules/react
npm ERR! react@"^17.0.2" from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^16.13.0" from [email protected]
npm ERR! node_modules/concent
npm ERR! concent@"^2.13.6" from the root project
根据官方介绍高性能demo,在本地环境中使用concent 2.7.25,发现不更新列表元素的试图
在线上demo中,update最新包,修改书籍名称同样出现问题。
访问地址
从 https://concentjs.github.io/concent-doc/guide/concept-module-watch
watch:{
firstName(n, o)=> {
console.log(`firstName changed from ${n.firstName} to ${o.firstName}`);
},
fullName:{
fn:(newState)=> {
console.log(`any value of firstName or lastName changed will trigger this`);
},
depKeys: ['firstName', 'lastName'],
},
}
这个例子的参数名和 https://stackblitz.com/edit/hook-setup?file=CounterSetupComputedWatch.js
里面测试来看:watch 函数的第一个参数是 new,第二个参数是 old
但是从
type WatchFn = (
oldVal:any,
newVal:any,
fnCtx:FnCtx,
)=> void;
和
console.log(`firstName changed from ${n.firstName} to ${o.firstName}`);
看,第一个是 old 第二个是 new....
https://concentjs.github.io/concent-doc/api/g-register
这个文档里面的例子,register
参数都是反的
@register('Foo', {module:'foo', watchedKeys:['f1']})
class Foo extends Component{
...
}
import { register } from 'concent';
@register('Foo', {
module:'foo',
watchedKeys:['f1'],
connect:{bar:'*'}}, //连接到bar模块,观察它的所有key值变化,
)
class Foo extends Component{
...
}
如题。感谢
项目地址:https://github.com/foca-js/foca
在线体验: https://codesandbox.io/s/foca-demos-e8rh3
比第一代redux-model更好用了。去掉了请求库,更加纯粹。Typescript方面一如既往100%类型提示
该 组件 内部 有一个 函数组件:ApplyDDUser
function ApplyDDUser(props) {
const ctx = useConcent({module: "product", props}, 'ApplyDDUser');
const { state, setState } = ctx;
const { showApplyProductUser } = state;
if(!showApplyProductUser )return null;
....
return 渲染代码
另外 ,我的代码平台是 基于 taro3的,最近在 做一个微信小程序,不知道 是否跟这些有关系?
请教下,多人开发的时候,用configure配置去中心化,如果两个人都命名了一个相同的module模块名,会不会冲突出错??
在当前实例 如何 获取同模块其他实例的state 或 其他模块实例的state 数据呢?
举个例子:我有个 foo 模块,有 实例 foo1 foo2 foo3 ,和 bar 模块 有实例 bar1 bar2 bar3
现在 在 foo1 实例 获取 foo2 foo3 和 bar1 bar2 的state 数据
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.