Javascript FindDOMNode通量/alt存储
为了使用velocity.js制作动画,我试图从存储访问dom节点(使用alt),但是我只得到了“无法读取未定义的属性”。是否可以从alt/flux存储中使用findDOMNodeJavascript FindDOMNode通量/alt存储,javascript,dom,reactjs,flux,react-alt,Javascript,Dom,Reactjs,Flux,React Alt,为了使用velocity.js制作动画,我试图从存储访问dom节点(使用alt),但是我只得到了“无法读取未定义的属性”。是否可以从alt/flux存储中使用findDOMNode import React from 'react' import alt from '../_alt'; import Actions from '../actions/actions'; import Velocity from 'velocity-animate/velocity'; import Body fr
import React from 'react'
import alt from '../_alt';
import Actions from '../actions/actions';
import Velocity from 'velocity-animate/velocity';
import Body from '../modules/level_1/body/body1'
class Store {
constructor(){
this.bindListeners({
menuToggle: Actions.MENU_TOGGLE
});
this.menuStatus = false
}
menuToggle(){
if (!this.menuStatus){
this.menuStatus = true;
Velocity(React.findDOMNode(Body.refs.wrap),({ width: '50px' }), 50)
} else {
this.menuStatus = false;
}
}
}
export default alt.createStore(Store, 'Store');
组成部分:
import React from 'react';
import connectToStores from 'alt/utils/connectToStores';
import Store from '../../../stores/store'
import Actions from '../../../actions/actions';
import Styles from './body1.css';
import Hero from '../../objects/hero/full_width'
let image = ['../../../../assets/full_width1.jpg', 'image']
@connectToStores
export default class Body extends React.Component {
static getStores(){
return [Store];
}
static getPropsFromStores(){
return Store.getState();
}
render(){
return (
<div ref='wrap'>
<Hero content={image} />
</div>
);
}
}
从“React”导入React;
从“alt/utils/connectToStores”导入connectToStores;
从“../../../stores/Store”导入存储
从“../../../Actions/Actions”导入操作;
从“/body1.css”导入样式;
从“../../objects/Hero/full_width”导入英雄
让image=['../../../../assets/full_width1.jpg','image']
@连接商店
导出默认类主体扩展React.Component{
静态getStores(){
退货[商店];
}
静态getPropsFromStores(){
返回Store.getState();
}
render(){
返回(
);
}
}
Body是一个react类,它没有ref。
您需要的是一个react元素(react类的实例),它是render、componentDidMount等内部的“this”
您必须以某种方式(可能通过使用实际的react元素调用menutogle)向存储提供react元素
或者,您可以使用componentDidMount在Body类上设置ref,以便toggle可以使用它。Body是一个react类,它没有ref。 您需要的是一个react元素(react类的实例),它是render、componentDidMount等内部的“this” 您必须以某种方式(可能通过使用实际的react元素调用menutogle)向存储提供react元素
或者,您可以使用componentDidMount在Body类上设置ref,以便toggle可以使用它。我成功使用的一种模式是创建一个初始化操作,该操作将React组件作为其参数之一。然后在
componentDidMount()
中,您可以调用该操作,并将此
作为参数传递。这允许您的存储在React元素上有一个句柄,以及它的所有相关属性,这样您就可以执行诸如React.findDOMNode(component.refs['someref'])
我成功使用的一种模式是创建一个初始化操作,该操作将React组件作为其参数之一。然后在componentDidMount()
中,您可以调用该操作,并将此
作为参数传递。这允许您的存储在React元素上有一个句柄,以及它的所有关联属性,这样您就可以执行React.findDOMNode(component.refs['someref'])
之类的操作