ボタンをクリックしてクリックすると、ローカルディレクトリが開き、ユーザーが画像を選択できるようになります。一度選択すると、そのディレクトリソースアドレスを保存し、それを表示するために<img src=""/>
のsrcに渡したいと思います。ReactJS + Redux:Mozilla File APIを使ってローカルイメージを選択してWebにアップロードするには?
私はそれを達成するために、次の使用しようとしています: https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
それのHTMLは次のとおりです。
export default class fileUploader extends Component {
render(){
return(
<div>
<input type="file" id="fileElem" multiple accept="image/*" style="display:none" onchange="handleFiles(this.files)"/>
<a href="#" id="fileSelect">Select some files</a>
<div id="fileList">
<p>No files selected!</p>
</div>
</div>
)
}
}
とJSは次のとおりです。HTMLのための<input ...>
については
window.URL = window.URL || window.webkitURL;
var fileSelect = document.getElementById("fileSelect"),
fileElem = document.getElementById("fileElem"),
fileList = document.getElementById("fileList");
fileSelect.addEventListener("click", function (e) {
if (fileElem) {
fileElem.click();
}
e.preventDefault(); // prevent navigation to "#"
}, false);
function handleFiles(files) {
if (!files.length) {
fileList.innerHTML = "<p>No files selected!</p>";
} else {
fileList.innerHTML = "";
var list = document.createElement("ul");
fileList.appendChild(list);
for (var i = 0; i < files.length; i++) {
var li = document.createElement("li");
list.appendChild(li);
var img = document.createElement("img");
img.src = window.URL.createObjectURL(files[i]);
img.height = 60;
img.onload = function() {
window.URL.revokeObjectURL(this.src);
}
console.log(img.height)
li.appendChild(img);
var info = document.createElement("span");
info.innerHTML = files[i].name + ": " + files[i].size + " bytes";
li.appendChild(info);
}
}
}
エラーが発生しました:Unterminated JSX contents
何が問題なのでしょうか?私は/を試してみた/ <input.../>
まだそれはまだエラーをスローアップ。
また、1つのイメージファイルを選択してそのディレクトリソースアドレスを<img/>
のsrcに渡すことができるようにJSを改訂するにはどうすればよいですか?
Reactを使用しているときに手動でDOM要素を作成するのはなぜですか? – Dodekeract
@Dodekeract私を導くことができますか?まだ学習は現時点では反応します。が最初にエラーをキャッチしていないのはなぜですか? –
多分[this](https://facebook.github.io/react/tips/inline-styles.html)が問題です。 – Dodekeract