javascript - 如何从事件处理程序内部设置上下文(使用新的 ReactJs 上下文 API)?
问题描述
我有一个 ReactJS 选择,用户在其中选择与应用程序版本相关的选项。我想为选择的选项 id 设置一个应用程序上下文变量。
AppContext.js:
export const AppContext = React.createContext({
versions: null,
currentVersion: null
});
VersionChooser.js(组件):
class VersionChooser extends Component {
static propTypes = {
context: PropTypes.object.isRequired
}
handleSelectChange = event => {
let context = {
currentVersion: event.target.value
}
/////////// WHAT TO DO HERE TO SET CONTEXT ///////////
<AppContext.Provider value={context}>
</AppContext.Provider>
};
render = () => {
let options = this.props.context.versions.map(item => {
return (
<option key={item.id} value={item.id}>
{item.name}
</option>
);
});
return (
<select value={this.props.context.currentVersion} onChange={this.handleSelectChange}>
{options}
</select>
</div>
);
};
}
export default VersionChooser;
我需要帮助currentVersion
在我的handleSelectChange
处理程序中设置上下文变量(修复上下文有 2 个变量,我只想设置其中一个)。
解决方案
推荐阅读
- wordpress - Wordpress CodeMirror.fromTextArea 不是函数错误
- ios - 我想使用网络类来处理服务器的成功和错误,这是最好的第 3 方?
- django - 如何在不使用 Zbar 的情况下使用 Python 3.6 读取图像中的条形码
- javascript - MVC 中时间日期的错误序列化
- json - 如何将 Javascript 对象插入 Postgres 表?
- reactjs - React Native - 根据条件过滤原生基础选择器项目
- woocommerce - 显示带有子类别、子类别、缩略图、名称和其他的 woocommerce 类别
- javascript - Firefox 两次触发 css 加载事件
- javascript - 在另一个内部动态编译和运行 react-native 应用程序
- mysql - 语法错误:“源”(源)在此位置无效输入