私はscrollIntoViewで私のアプリケーションの異なる部分にスクロールするために私のヘッダーのリンクを使用しようとしています。ヘッダーはAppの子です。私はIDを保存しようとしている変数が未定義であるというTypeErrorを取得しています。誰かが私が間違っていることを判断するのを手伝ってくれますか?私はComponentDidMountを使用しなければならないかもしれないと思うが、もしそれが修正されたとしても、どうやってそれを行うのかは分からない。私はすべての私のヘッダーリンクでこれを行う必要があります。オブジェクトの :のonClick(19957 bundle.js)で ReactでscrollIntoViewを使用するには?
// bundle.js ERROR:152キャッチされない例外TypeErrorは:App.getScrollLocationsのプロパティを読み取ることができません ヌル の 'のscrollIntoView'(152 bundle.js) .ReactErrorUtils.invokeGuardedCallback(bundle.js:4660)executeDispatchで (bundle.js:4460)Object.executeDispatchesInOrderで (bundle.js:4483)executeDispatchesAndReleaseで (bundle.js:3913)executeDispatchesAndReleaseTopLevelで (bundle.js :3924) at Array.forEach() forEachAccumulated(bundle.js:4760) at Obje ct.processEventQueue(bundle.js:4129) ///////
//アプリケーション
class App extends Component {
constructor(props) {
super(props);
this.closeModal = this.closeModal.bind(this);
this.openModal = this.openModal.bind(this);
this.getScrollLocations = this.getScrollLocations.bind(this);
this.state = {
open: false,
projects: Service,
selectedProject: Service[0]
}
}
closeModal(event) {
this.setState({open: false});
}
openModal(project) {
this.setState({
open: true,
selectedProject: project
});
}
///////////// scroll function //////////////
getScrollLocations() {
const whatIDo = document.getElementById('.whatIdo');
console.log(whatIDo)
whatIDo.scrollIntoView();
}
render() {
const show = {
display: 'block'
};
const hide = {
display: 'none'
};
return (
<div>
<div style={this.state.open === false ? hide : show}>
<Modal
value={this.state.open}
closeModal={this.closeModal}
project={this.state.selectedProject}
/>
</div>
<Header
//////////// FUNCTION PASSED TO HEADER ///////////////
getScrollLocations={this.getScrollLocations}
/>
<Intro />
/////////////// ELEMENT I AM TARGETING /////////////////
<WhatIDo id="whatIDo" />
<WhoIAm />
<Gallery
value={this.state.open}
projects={this.state.projects}
openModal={this.openModal}
/>
<Contact />
<Footer />
</div>
);
}
}
//ヘッダー
const header = (props) => {
console.log(props);
return (
<div className="header">
<div className="header-name">
XXXXXXX XXXXXXX
</div>
<div className="header-links">
<ul>
<li>Intro</li>
<li
///////////// FUNCTION CALL ON CLICK /////////////////
onClick={() => props.getScrollLocations()}
>What I do</li>
<li>Who I am</li>
<li>My Work</li>
<li>Contact</li>
</ul>
</div>
</div>
)
}
[OK]を、私はこれをしようとします。ありがとう。 – jcs1977
このファイルは何ですか: 'scroll-into-view-if-needed-needed';からのimport scrollIntoViewIfNeeded; – jcs1977
これは、ページがレンダリングされているブラウザがScrollIntoViewをネイティブでサポートしているかどうかを検出するモジュールです。ブラウザがscrollIntoviewをサポートしていて、モジュールが何もしない場合、scrollIntoViewがユーザのブラウザでサポートされていない場合、特徴。このモジュールの その他のドキュメント: https://www.npmjs.com/package/scroll-into-view-if-neededのscrollIntoViewため ブラウザのサポート: http://caniuse.com/#feat=scrollintoview –