将变量函数传递给 React.js 中的组件
Pass a variable function to component in React.js
我尝试在 react-js 中上传视频并预览但我失败了,如何将 fi 变量传递给 url 将我的代码分成
import {useState} from 'react';
import ReactPlayer from 'react-player';
function Video(props) {
const [file,setFile] = useState( null );
const onInputValue = (e) => {
var fi = URL.createObjectURL(e.target.files[0])
console.log(fi);
};
return (
<div>
<form method="post" action="#" id="#">
<input type="file" onChange={onInputValue}/>
<button>Upload</button>
</form>
<ReactPlayer
controls
url={fi}
id="videoz" />
</div>
);
}
export default Video;
我这样做但是在 fi 变量 error
中显示错误
src\components\Video.js
Line 22:18: 'fi' is not defined no-undef
如何解决这个问题,我是react新手!
我建议你将你的 fi 保存在一个状态中,这样你就可以将它传递给你的 ReactPlayer
,然后需要验证它是否不为 null。
import { useState } from 'react';
import ReactPlayer from 'react-player';
function Video(props) {
const [file, setFile] = useState(null);
const [fi, setFi] = useState(null);
const onInputValue = (e) => {
setFi(URL.createObjectURL(e.target.files[0]));
console.log(fi);
};
return (
<div>
<form method="post" action="#" id="#">
<input type="file" onChange={onInputValue} />
<button>Upload</button>
</form>
<ReactPlayer controls url={fi} id="videoz" />
</div>
);
}
export default Video;
你var
fi,作用域为函数。它在 onInputValue
之外是不可见的。因此错误。
您要使用的变量在更改时应该会导致重新呈现。状态是合乎逻辑的解决方案。您可以将状态变量与将被更新的 useState 一起使用。
function Video(props) {
const [file,setFile] = useState( null );
const [fi,setFi] = useState('');
const onInputValue = (e) => {
var newFi = URL.createObjectURL(e.target.files[0])
console.log(newFi);
setFi(newFi);
};
return (
<div>
<form method="post" action="#" id="#">
<input type="file" onChange={onInputValue}/>
<button>Upload</button>
</form>
<ReactPlayer
controls
url={fi}
id="videoz" />
</div>
);
}
我尝试在 react-js 中上传视频并预览但我失败了,如何将 fi 变量传递给 url 将我的代码分成
import {useState} from 'react';
import ReactPlayer from 'react-player';
function Video(props) {
const [file,setFile] = useState( null );
const onInputValue = (e) => {
var fi = URL.createObjectURL(e.target.files[0])
console.log(fi);
};
return (
<div>
<form method="post" action="#" id="#">
<input type="file" onChange={onInputValue}/>
<button>Upload</button>
</form>
<ReactPlayer
controls
url={fi}
id="videoz" />
</div>
);
}
export default Video;
我这样做但是在 fi 变量 error
中显示错误src\components\Video.js
Line 22:18: 'fi' is not defined no-undef
如何解决这个问题,我是react新手!
我建议你将你的 fi 保存在一个状态中,这样你就可以将它传递给你的 ReactPlayer
,然后需要验证它是否不为 null。
import { useState } from 'react';
import ReactPlayer from 'react-player';
function Video(props) {
const [file, setFile] = useState(null);
const [fi, setFi] = useState(null);
const onInputValue = (e) => {
setFi(URL.createObjectURL(e.target.files[0]));
console.log(fi);
};
return (
<div>
<form method="post" action="#" id="#">
<input type="file" onChange={onInputValue} />
<button>Upload</button>
</form>
<ReactPlayer controls url={fi} id="videoz" />
</div>
);
}
export default Video;
你var
fi,作用域为函数。它在 onInputValue
之外是不可见的。因此错误。
您要使用的变量在更改时应该会导致重新呈现。状态是合乎逻辑的解决方案。您可以将状态变量与将被更新的 useState 一起使用。
function Video(props) {
const [file,setFile] = useState( null );
const [fi,setFi] = useState('');
const onInputValue = (e) => {
var newFi = URL.createObjectURL(e.target.files[0])
console.log(newFi);
setFi(newFi);
};
return (
<div>
<form method="post" action="#" id="#">
<input type="file" onChange={onInputValue}/>
<button>Upload</button>
</form>
<ReactPlayer
controls
url={fi}
id="videoz" />
</div>
);
}