Javascript 反应:如何从导入的文件中为道具添加新值?
我是(非常)新的反应者,被赋予了向从另一个文件引入的组件添加一些数据的任务。这个文件输出一些JSON,我想从中访问某些数据,例如:Javascript 反应:如何从导入的文件中为道具添加新值?,javascript,reactjs,Javascript,Reactjs,我是(非常)新的反应者,被赋予了向从另一个文件引入的组件添加一些数据的任务。这个文件输出一些JSON,我想从中访问某些数据,例如: config.forms.enquiry.title 我导入文件很好-没有问题。但我不知道如何将config包含到我的道具中 我在另一个文件中找到了一个工作示例,并复制了它的功能。我的代码就是这样 引入带有JSON的文件: import { withSettings } from 'services/settingsFile'; 在渲染函数中添加配置: rend
config.forms.enquiry.title
我导入文件很好-没有问题。但我不知道如何将config
包含到我的道具中
我在另一个文件中找到了一个工作示例,并复制了它的功能。我的代码就是这样
引入带有JSON的文件:
import { withSettings } from 'services/settingsFile';
在渲染函数中添加配置:
render () {
const styles = getStyles(this.props, this.context, this.state);
const { config } = this.props;
// other stuff
添加到PropType:
enquiryForm.propTypes = {
config: PropTypes.object.isRequired,
// other stuff
添加到撰写:
export const enquiryForm = compose(
withSettings,
// other stuff
但是,我得到了一个错误:
失败的上下文类型:上下文config
在中标记为必需
n
,但其值是未定义的
从这里我不知道该怎么办。我知道这是一个很难回答的问题,但我对React知之甚少,而且我已经陷入了困境
有人知道我应该搜索什么/哪里来修复此问题吗?如果您可以像
import { withSettings } from 'services/settingsFile';
你为什么不这样用呢
const { config } = withSettings;
好的,问题是没有将包装元素设置为am属性 我必须升级到我的组件被引入和包装的位置:
<SettingsFile config={window.settingsFile}>
大约:
<Component conf={config} />
然后,我正在使用的组件能够读取
config
我只是在这里进行头脑风暴,但可能您正在尝试在文件“实际加载”之前读取文件。您是否尝试在componentDidMount()中执行console.log(this.props)以查看是否能够读取该文件?@MstrQKN我尝试了此操作,但componentDidMount没有启动。我认为这些错误阻止了它进入这个阶段。@MstrQKN update:我删除了破坏东西的代码,并在componentDidMount中添加了console.log。不幸的是,它显示config为空。