【发布时间】:2019-05-02 21:42:36
【问题描述】:
我只是尝试使用反应提供者,但不知何故我得到了这个错误: index.js:1437 警告:上下文使用者使用多个子级或不是函数的子级呈现。上下文使用者需要一个作为函数的子节点。如果您确实传递了一个函数,请确保它周围没有尾随或前导空格。
这是 context.js
import React, { Component } from 'react'
const Context=React.createContext()
class Providerr extends Component {
state={display:false}
displayeditor=()=>{this.setState({display:!this.state.display}) }
render() { return (
<Context.Provider value={{...this.state,displayeditor:this.displayeditor }}>
{this.props.children}
</Context.Provider>
)
}
}
const Consumer=Context.Consumer
export {Providerr,Consumer}
我想在下面消费它
import React, { Component } from 'react'
import {NavLink} from "react-router-dom"
import "./leagues.scss"
import {Consumer} from "./context.js"
export default class Navbar extends Component {
render() {
return (
<nav className="navbar navbar-expand-lg">
<a className="navbar-brand" href="#Home">
<img src="./images/customLogo.jpg" className="navlogo"/>
</a>
<div className="collapse navbar-collapse">
<ul className="navbar-nav mx-5">
<NavLink to="/">
<li className="nav-item active mr-5">
<div className="nav-link">
<span>Home</span>
</div>
</li>
</NavLink>
<Consumer> {value =>
<li onClick={value.displayeditor} className="nav-item mr-5">
<div className="nav-link modal_lig" href="">
<span>Leagues</span>
</div>
</li> }
</Consumer>
</nav>
)}}
【问题讨论】:
-
看起来您在消费者回调结束时在
</li上缺少> -
不,它不能解决问题
-
您是否尝试按照错误提示删除函数周围的空间?
<Consumer> {value =>。另外我不确定函数右括号后的新行是否也会影响,请尝试删除它。