Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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 为什么设置后状态不可用?_Reactjs_State_Web Audio Api - Fatal编程技术网

Reactjs 为什么设置后状态不可用?

Reactjs 为什么设置后状态不可用?,reactjs,state,web-audio-api,Reactjs,State,Web Audio Api,为什么会出现以下带有TypeError的代码错误:调用playTone函数时无法读取null的属性“CreateSocator” 我不明白为什么在运行audioContext.create振荡器()时,audioContext仍然是null。我希望initialiseAudioContext能够定义它 第二次调用playTone时,将定义audioContext。起初,这让我认为可能会发生一些异步性,但事实似乎并非如此 const [audioContext, setAudioContext]

为什么会出现以下带有
TypeError的代码错误:调用
playTone
函数时无法读取null的属性“CreateSocator”

我不明白为什么在运行
audioContext.create振荡器()
时,
audioContext
仍然是
null
。我希望
initialiseAudioContext
能够定义它

第二次调用
playTone
时,将定义
audioContext
。起初,这让我认为可能会发生一些异步性,但事实似乎并非如此

const [audioContext, setAudioContext] = useState(null);

const initialiseAudioContext = () => setAudioContext(new window.AudioContext());

const playTone = () => {
  if (!audioContext) {
    initialiseAudioContext();
  }
  const oscillatorNode = audioContext.createOscillator();
  ...

这回答了你的问题吗?我还没有弄明白代码,但它为我指明了正确的方向。谢谢。@Jelefra-tldr-
setState
异步的
(想想
承诺