我尝试访问路由器反应路由器的子元素的ref,但它不起作用。
<Route path={path} render={ () => (
<Child ref={ (el => this.$child = el)} />
)} />
控制台日志:"Warning: Stateless function components cannot be given refs. Attempts to access this ref will fail."
答案 0 :(得分:2)
即使它位于Route元素内,您也应该能够获得Child组件的@app.route('/', methods=['GET', 'POST'])
def checNumber():
if request.method == 'POST':
number_str = request.form['Number']
try:
number = float(number_str)
except ValueError:
number = None
if number is None:
raise ValueError('Please enter number only')
elif number <= 0:
raise ValueError('Number should be greater than 0')
else:
pass
return render_template('hello.html')
。这里的问题是你的Child元素可能是一个无状态的函数组件,它不支持ref。因为功能组件没有实例。
将您的Child组件定义为ES6类而不是函数。
您可以在此处详细了解:https://reactjs.org/docs/refs-and-the-dom.html#refs-and-functional-components