reactjs - "stateless"组件中的上下文?

标签 reactjs

我的组件中有以下代码,我希望无状态组件能够访问这部分代码:

主要成分:

function createApp(store, communityIds) {
const App = React.createClass({

    childContextTypes: {
        localizedString: React.PropTypes.func,
    },

    getChildContext: function() {
        return {
            localizedString: function(key, fallback) {
                return getKey(key, fallback);
            },
        };
    },

    render: function() {
        return (
            <Provider store={store}>
                <Client communityIds={communityIds}/>
            </Provider>
        );
    },
});

return <App/>;
}

无状态:

export default () => (dispatch, getState) => {
    const state = getState();

    const token = state.user.get('token');

    if (!token) {
        throw new Error('test'); // this.context.localizedString does not work
    }
}

最佳答案

您在“无状态:”函数的定义下提供的内容并不是无状态函数。您已将 Action 创建者作为 thunk 提供。我假设您想插入客户端组件的代码。要访问无状态组件中的上下文,您的客户端组件将执行类似的操作(记录在 here 中)

const Client = (props, context) => {   
    return  <div >{context.localizedString("someKey", "someFallback")} </div>
}

Client.contextTypes = {
    localizedString: React.PropTypes.func
}

export default Client

关于reactjs - "stateless"组件中的上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35866066/

相关文章:

javascript - Next.js - 是否可以使用 next.js 和另一个用于后端应用程序的服务器制作一个应用程序,并且始终有利于 SEO 性能?

javascript - React router - 访问路由内的 props

reactjs - Jest 测试仅在覆盖范围内失败

javascript - 如何克服来自两个 CSS 框架的相似名称 CSS 类的重叠?

javascript - 如何在 react-select 中合并 selectedOptions

javascript - 如何访问 map 内的下一个/上一个对象 - react ?

reactjs - 无法读取 t.isMuiElement 处未定义的属性 'muiName'?

android - React-Native 中的抽屉导航

javascript - 单击提交后,如何重定向到 js 组件并通过 php 将信息发送到 db?

javascript - 如何在 HTML 中设置 React 组件的样式