Javascript “尺寸误差”;“未定义状态”;在流星+;反应

Javascript “尺寸误差”;“未定义状态”;在流星+;反应,javascript,reactjs,scroll,Javascript,Reactjs,Scroll,这是错误的功能,我试图淡出导航栏在滚动的时候,但它抛出了一个错误,我在下面的功能 const opacity = Math.min(100/state.alturaActualScroll, 1); 我有我的导航栏组件,但告诉我状态尚未定义,但我不知道,因为错误,这是我的代码 import React from 'react'; import {Link} from 'react-router' import { Accounts } from 'meteor/accounts-base';

这是错误的功能,我试图淡出导航栏在滚动的时候,但它抛出了一个错误,我在下面的功能

const opacity = Math.min(100/state.alturaActualScroll, 1);
我有我的导航栏组件,但告诉我状态尚未定义,但我不知道,因为错误,这是我的代码

import React from 'react';
import {Link} from 'react-router'
import { Accounts } from 'meteor/accounts-base';
import {Meteor} from 'meteor/meteor';

export default class NavbarLanding extends 
React.Component {


    componentDidMount() {
        window.onscroll =()=> {
            this.setState({
                alturaActualScroll: window.scrollY})
        }
    }
    componentDidMount () {
        window.onscroll =()=>{
            nuevaAlturaScroll = Math.ceil(window.scrollY / 50) *50;
            if(this.state.alturaActualScroll != nuevaAlturaScroll){
                this.setState({alturaActualScroll:nuevaAlturaScroll})
            }
        }
    }
      // update
    render() {
        // console.log('donde estoy');
        const opacity = Math.min(100/state.alturaActualScroll, 1);
        return(
        <div style={opacity}id="navbar"className="navbar-landing">
            <nav>
                <div>
                        <ul className="ul-landing">
                                {/* <img src="./public/images/flat-rocket.jpg"></img> */}
                                <li id="navbar-landing-title" className="navbar-title"><a>Landing </a></li>
                            <div id="menu-landing"className="navbar-menu">
                                <li><a>acerca</a></li>
                                <li><a>portafolio</a></li>
                                <li><a>contacto</a></li>
                                <button className="btn"onClick={() => Accounts.logout()}>Logout</button>
                            </div>
                        </ul>
                </div>
             </nav>
        </div>  
        );
    };
}   

NavbarLanding.reactProptype = {
    title: React.PropTypes.string.isRequired
};
从“React”导入React;
从“反应路由器”导入{Link}
从“meteor/Accounts base”导入{Accounts};
从“流星/流星”导入{Meteor};
导出默认类NavbarLanding扩展
反应组件{
componentDidMount(){
window.onscroll=()=>{
这是我的国家({
AlturalActualScroll:window.scrollY})
}
}
组件安装(){
window.onscroll=()=>{
numevaalturascroll=Math.ceil(window.scrollY/50)*50;
if(this.state.alturaActualScroll!=numevaalturascroll){
this.setState({AlturalActualScroll:nuevaAlturaScroll})
}
}
}
//更新
render(){
//console.log('donde estoy');
常数不透明度=数学最小值(100/state.AlturalActualScroll,1);
返回(
    {/* */} 登陆
  • 槭树
  • 手册
  • 联系人
  • Accounts.logout()}>logout
); }; } NavbarLanding.reactProptype={ 标题:React.PropTypes.string.isRequired };
您的代码应该是

const opacity = Math.min(100/this.state.alturaActualScroll, 1);
在访问组件的状态时,您忘记添加
this
关键字,这导致解释器查找名为state的局部变量,而不是类级状态变量


根据Felix Kling和zerkms的评论进行编辑和更正

那么
状态
变量定义在哪里?另一件事:您已经定义了两次
componentDidMount