Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';在React Native中将值设置为选定图像时找不到变量_Javascript_Reactjs_React Native - Fatal编程技术网

Javascript Can';在React Native中将值设置为选定图像时找不到变量

Javascript Can';在React Native中将值设置为选定图像时找不到变量,javascript,reactjs,react-native,Javascript,Reactjs,React Native,这是我的职责。它们由用户检查所选图像并为其分配ID setCharacter = (props) => { this.setState({ character:props }) } const pressHandler = (character) => { this.setCharacter(character) console.log(character); } 我正在使用这里的函数来分配ID TouchableOpacity onPress={(pre

这是我的职责。它们由用户检查所选图像并为其分配ID

setCharacter = (props) => {
  this.setState({
    character:props
  })
}

const pressHandler = (character) => {
  this.setCharacter(character)
  console.log(character);
}
我正在使用这里的函数来分配ID

TouchableOpacity onPress={(pressHandler('1'))}>
            <Image style={{height: 120,
              width: 120, alignSelf: 'center'}} source={require('../assets/characters/001-superhero.png')}
            />
</TouchableOpacity>

<TouchableOpacity onPress={(pressHandler('2'))}>
            <Image style={{height: 120,
              width: 120, alignSelf: 'center'}} source={require('../assets/characters/003-superhero.png')}
            />
</TouchableOpacity>
TouchableOpacity onPress={(pressHandler('1'))}>
这是我的错误

ReferenceError:找不到变量:setCharacter

提前非常感谢!我使用了另一个堆栈溢出链接来创建:

我希望我遵守了stackoverflow的所有规则:)

尝试使用like

const setCharacter = (props) => {
  // .. use state from `useState` for hooks
}

const pressHandler = (character) => {
  setCharacter(character)
  console.log(character);
}

TouchableOpacity onPress={() => pressHandler('1')}>
...
</TouchableOpacity>

<TouchableOpacity onPress={() => pressHandler('2')}>
...
</TouchableOpacity>
const setCharacter=(道具)=>{
//..对挂钩使用“useState”中的状态
}
常量pressHandler=(字符)=>{
设置字符(字符)
console.log(字符);
}
TouchableOpacity onPress={()=>pressHandler('1')}>
...
pressHandler('2')}>
...
三件事:

  • 努鲁丁所说的--
    onPress
    必须指向一个函数,而
    (pressHandler('1')
    不是一个函数。将其更改为
    onPress={()=>pressHandler('1')}

  • 您需要使用const或类似的东西正确地声明
    setCharacter
    const setCharacter=…

  • 尝试用
    setCharacter(character)
    替换
    this.setCharacter(character)
    ——我不能确定这是否是一个问题,但可能是


  • 您可以使用Bind或arrow函数,但下面的函数应该可以使用

    在构造函数中,还使用character属性初始化状态

    constructor(props) {
        super(props);
        this.state = {
          character: '',
        };
    }
    
    要使用传入的字符,只需通过
    this.state.character


    当前图像ID:{this.state.character}

    我将其更改为--const setCharacter=()=>{const[character,setCharacter]=useState(“”);}--它不起作用:(谢谢你的回答!我不确定我是否能够使用它,因为我试图不使用OO:(。谢谢。我很难让它起作用:(我对编程非常陌生,所以我不确定自己是否了解所有内容。
        <TouchableOpacity onPress={this.pressHandler.bind(this, '1')}>
    
    const pressHandler = (c) => {
     this.setState({character: c});
     console.log(c);
    }