为了账号安全,请及时绑定邮箱和手机立即绑定

我不断收到一条错误消息,说 this.replaceState 不是函数

我不断收到一条错误消息,说 this.replaceState 不是函数

繁星coding 2022-01-13 15:13:47
现在我有一个学校项目要在我的手机上构建一个应用程序。我们正在使用 React Native 和 Java。我想在应用程序中制作一个按钮,按下时会变为随机颜色。然而,这不起作用。这是我的一些代码片段:    export default class HomeScreen extends React.Component {  constructor(props) {  super(props);  this.state = {color: "#000000"}}  render() {    let color = this.state.color;  return (...<View>          <Button          onPress = {changecolor}          title = "This button changes color when pressed"          color = {color}/>        </View>...numbers = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];this.random = this.numbers[Math.floor(Math.random() * this.numbers.length)];function changecolor() {  this.replaceState({color: String("#"+random+random+random+random+random+random)});} 在此之前我也遇到了一个问题,该按钮只会变成灰色阴影而不是任何颜色。请问有什么帮助吗?编辑:我应该提到我之前使用过 this.setState 并且结果相同
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

export default class HomeScreen extends React.Component {


    constructor(props) {

        super(props);

        this.state = {color: "#000000"}

    }


    render() {


    let color = this.state.color;

    return (

    <View>

        <Button

        onPress = {this.changecolor}

        title = "This button changes color when pressed"

        color = {color}/>

    </View>



    numbers = ["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];


    this.random = this.numbers[Math.floor(Math.random() * this.numbers.length)];


    changecolor() {

        this.replaceState({color: String("#"+random+random+random+random+random+random)});

    }


查看完整回答
反对 回复 2022-01-13
?
杨魅力

TA贡献1811条经验 获得超6个赞

changecolor甚至是班级成员HomeScreen?看起来不像,考虑到它是用声明的function并且没有解析错误对你大喊大叫。让它成为一个方法,更好的是,一个箭头函数:


changecolor = () => {

  this.replaceState({color: String("#"+random+random+random+random+random+random)});


查看完整回答
反对 回复 2022-01-13
  • 2 回答
  • 0 关注
  • 193 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信