我想从渲染函数访问refs,并将其设置为状态.
这是我的代码:
export default class App extends Component {
constructor(props) {
super();
this.arr = this.generateTimelineArray();
this.state = {el : 'empty'};
}
componentDidMount() {
this.setState({
el: this.refs.el
});
console.log(this.state.el)
}
render() {
return (
<div className="timeline__container--line" ref="el" ></div>
);
}
Run Code Online (Sandbox Code Playgroud)
我可以console.log(this.refs.el)和值记录.但我必须将它保存到构造函数以将其传递给另一个组件.
问题是国家没有改变.
我究竟做错了什么?
提前致谢
我的onScroll渲染函数中有一个事件。当站点滚动时,它应该触发输出一些数据的 listenScrollEvent 函数。由于某种原因,它没有被触发。我已经在构造函数中绑定了函数,但显然它没有帮助。
工作示例
import React, {Component} from 'react';
import { render } from 'react-dom';
import Hello from './Hello';
export class Home extends Component {
constructor(props) {
super();
this.listenScrollEvent = this.listenScrollEvent.bind(this);
}
listenScrollEvent() {
console.log('Scroll event detected!');
}
render() {
return (
<div className="App" onScroll={this.listenScrollEvent}>
What is Lorem Ipsum?aa
Lorem Ipsum is simply dummy text of the printing and taypesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer …Run Code Online (Sandbox Code Playgroud) 我有这个代码显示上一页中的所有目录.
$dirs = array_filter(glob('../*'), 'is_dir');
foreach ($dirs as $nav) {
echo "<li><a href='$nav'>".$nav."</a></li>";
}
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
是否有可用于../从输出字符串中删除前缀的函数或方法?
谢谢.