reactjs - ReactJS 上下文:通过上下文传递数组
问题描述
我目前有一个项目,我需要将数组传递给我的搜索栏的另一个组件。我正在使用 React 的上下文。
我试过传递我的数据,但我似乎在我的控制台中得到了一个未定义的值。
Context.js中的代码
Export const SearchContext = createContext();
这是MainPage.js中的代码:
const data = [json_1, json_2];
const array = data.map(values => {
const search = _.flattenDeep(values);
values.search = search;
return values;
})
<SearchContext.Provider value={array} />
在我的Searchbar.js
const options = useContext(SearchContext);
console.log(options);
<AutoComplete
className="searchbar"
placeholder="Search..."
dataSource = {options}
onfilterOption={(inputValue, option) =>
option.props.children.toUpperCase().indexOf(inputValue.toUpperCase()) !== -1
}
/>
在 console.log 我得到一个未定义的值。这些数据也应该能够填充我的搜索栏。
解决方案
请看这个要点:https ://gist.github.com/nimahkh/9c008aaf2fd2d1cc83cd98c61e54979a
你必须用 Provider 包装你的组件,并且在那个被 Wrapped 的组件内部,你可以访问 value ,不可能获取 value ,开箱即用
推荐阅读
- c# - 我们可以为 asp.net .web 表单创建 pwa-app 吗?
- php - 结合 for 和 if 语句
- python - Python:将时间序列应用于数据框的每一列并返回一个新行
- ios - SWIFT - 对私有 restfull api 的 Https 调用失败
- python - 如何在python的装饰器类中配置记录器
- php - 剥离联系表 7 字段上的格式
- symfony - 如何使用与 Web 表单相同的验证以编程方式创建新的 FOSUserBundle 用户?
- ios - 设置下一个按钮和完成按钮,而不是在键盘 swift 4 中返回
- php - 获取所有月份的总和
- ajax - UI 重复项的删除按钮无法正常工作