Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs 上下文API:在上下文中使用函数';s状态以更改上下文变量。函数为';t执行_Reactjs_React Native - Fatal编程技术网

Reactjs 上下文API:在上下文中使用函数';s状态以更改上下文变量。函数为';t执行

Reactjs 上下文API:在上下文中使用函数';s状态以更改上下文变量。函数为';t执行,reactjs,react-native,Reactjs,React Native,-反应16.5 -虽然我认为这个问题是react问题,而不是react原生问题,但这是我的react原生版本。My package.json没有react本机版本,而是: “本机反应”:” 目标:从另一个文件更改上下文(上下文API)中变量的值 方法:我在上下文中有一个函数来切换一个值,并在另一个调用该值的文件中有一个按钮 问题:当我启动按钮时,该功能不执行。尽管我的上下文变量(称为“ctx”)在其调用的范围内可用,但仍会发生这种情况 这是它自己的文件中的上下文(我们称之为“上下文文件”): 这

-反应16.5 -虽然我认为这个问题是react问题,而不是react原生问题,但这是我的react原生版本。My package.json没有react本机版本,而是: “本机反应”:”

目标:从另一个文件更改上下文(上下文API)中变量的值

方法:我在上下文中有一个函数来切换一个值,并在另一个调用该值的文件中有一个按钮

问题:当我启动按钮时,该功能不执行。尽管我的上下文变量(称为“ctx”)在其调用的范围内可用,但仍会发生这种情况

这是它自己的文件中的上下文(我们称之为“上下文文件”):

这里是调用函数的地方(我们称之为“按钮文件”):

if(保持类型==“true\u false”){
调试器;
返回(
{ctx.toggleQuestion)}}/>
{}} />
)
}
我的经验 当按钮文件出现在调试语句中时,我可以检查变量“ctx”,它完全可用(包括ctx.toggleQuestion)。但是,函数不会启动,因为上下文文件中的调试语句没有被捕获

您如何帮助我:
  • 解释为什么它没有被抓到
  • 告诉我我的方法是否有效
  • 如果你知道更好的方法,请说出来

好的,如果您可以在inspector中看到ctx.toggleQuestion,则错误是(除非您有输入错误…)

onPress={()=>{ctx.toggleQuestion}}(此行实际上没有调用函数。事实上,它什么都没有做)

应该是


onPress={()=>{ctx.toggleQuestion()}

确定如果您可以在检查器中看到ctx.toggleQuestion,则错误是(除非您有输入错误…)

onPress={()=>{ctx.toggleQuestion}}(此行实际上没有调用函数。事实上,它什么都没有做)

应该是


onPress={()=>{ctx.toggleQuestion()}

为什么不使用
React.createContext
来实际使用呢?此外,您正在使用状态内部的方法创建组件。这对React来说是不典型的,对我来说也没什么意义。另外,没有关于如何在其他组件中初始化
ConfigProvider
的信息。为什么不使用
React.createContext
来实际使用?此外,您正在使用状态内部的方法创建组件。这对React来说是不典型的,对我来说也没什么意义。此外,没有关于如何在其他组件中初始化
ConfigProvider
的信息。
class ConfigProvider extends Component {
  state = {
    dataSource: ds.cloneWithRows(game_array),

    toggleQuestion: () => {
      debugger;
      new_game_array = game_array[0].questions.completed = true;
      this.setState({ game_array: new_game_array });
    }
  };
if (hold_type === "true_false"){
        debugger;
        return(
            <View style={{ width: dims.width, height: HEIGHT_OF_true_false_SECTION, flexDirection: "row", justifyContent: "space-around", alignItems: "center"}}>
                    <Button title='True!' color='red' onPress={()=>{ctx.toggleQuestion)}} />
                    <Button title='False' color='green' onPress={()=>{}} />
            </View>
        )
    }