你能获得组件的关键路径吗?

时间:2016-07-11 14:55:55

标签: reactjs redux react-redux

有人建议here为组件生成唯一的确定性值(例如HTML id)的好方法是来自关键路径。但是,似乎没有内置的方法来获取或计算此路径。如果不使用私有API,这是可能的,还是我不幸运?

上下文:我有一个编辑报告的应用程序。根据外部因素,将提供各种副编辑。每个子编辑器将调度事件以更改具有固定结构的“真实”数据。此外,各种子编辑器可能具有自己的UI状态。因为我无法预测页面上将存在哪种UI状态,所以整个UI状态的结构会有所不同。但是,我想保存,记录和重放用户研究的UI状态更改,因此它将全部通过Redux存储。因为这些数据仅用于UI目的,所以我不关心它在商店中的位置,只要它保存在确定的位置。

这可能是什么样子的例子:

const MyEditorComponent = connect(
    state => ({
        editors: state.config.subEditors,
        uiState: state.uiState
    })
)(({ data, uiState, dispatch }) => {
    const uiKey = this.getKeyPath() + '/currentEditor';
    const currentEditor = uiState[uiKey];

    return (
        <Selector value={currentEditor} onChange={value => dispatch( MyActions.setUiState(uiKey, value) )}>
            {editors.map( ({ id, title }) => <div key={id} selectorValue={id}>{title}</div> )}
        </Selector>

        <TabbedView value={currentEditor}>
            {editors.map( ({ id, type }) => <type key={id} tabbedViewId={id} /> )}
        </TabbedView>
    );
});

0 个答案:

没有答案