前一个帖子也说了,现在在做一个 file manager webui , 昨天碰到一些基本的问题都已经解决了,现在卡在一个大问题上。就是自包含 component.
大家都知道一般的 file manager 左侧都有一个树形的浏览器,我想用一个 component 表示所有的节点,比如这个 conponent 叫 TreeNode 。每个 TreeNode 下面也会有子节点,同样也是 TreeNode , 他们的 state 是 {path, children_nodes, right .....}, 但是内容都不同。 children_nodes 是从服务器拿的, path 是 parent 传给他的(因为 parent 拿到了 children_nodes , 然后 map 到子节点 的时候可以把 path 传给他).
结构像这样(文件浏览器所以层数不限。。):
App:
TreeNode
--TreeNode
----TreeNode
----TreeNode
TreeNode
TreeNode
--TreeNode
TreeNode
--TreeNode
----TreeNode
----TreeNode
我有一个 OPEN_NODE action , 用来触发 getFileList (获取文件列表函数,在 action creator 里),然后把 state.open 设置为 true
然后现在的问题是,因为只能 connect 根节点 App ,导致所有子节点所接受的 state 都变得一样了。。。
v2ex 代码显示太恶心了。。还是贴 github 地址吧
https://github.com/eromoe/simple-redux-boilerplate 关键代码在
containers/App.js:
containers/TreeNode.js
actions/NodeActions.js
reducers/TreeNodeReducer.js
现在卡在这里不知道怎么往下做。。。。