我一直在我的项目中使用它们,有时我发现需要在引导程序组件中使用Material UI组件,并且UI显示为我所期望的.我被告知不要使用这种方法.是否有任何理由因为两者都在使用网格并且可以弯曲?
根据官方 React 文档,componentDidMount在 hooks 中翻译为:
useEffect(() => {
//code here
},[])
Run Code Online (Sandbox Code Playgroud)
所以假设我想在这个钩子中做一个 api 调用:
useEffect(() => {
getActiveUser();
},[])
Run Code Online (Sandbox Code Playgroud)
添加 eslint 规则后"react-hooks/exhaustive-deps",这是一个 lint 错误。为了使其静音,我可以将getActiveUser函数放入数组中,一切正常。
但这是否与文档背道而驰?我的印象是数组检查道具更改。我还想指出 API 调用是在没有 prop/id 的情况下进行的,所以我可以理解必须做这样的事情的事实:
useEffect(() => {
getActiveUser(someId);
},[getActiveUser, someId])
Run Code Online (Sandbox Code Playgroud)
那么这里发生了什么?加了Eslint规则,是不是Effect里面的数组不能再为空了?
我正在使用 React 开发一个谷歌地图项目。我为 onClick 处理程序分配了以下方法:
getStreetView(lat,lng){
let url = `https://maps.googleapis.com/maps/api/streetview?size=600x300&location=${lat},${lng}&heading=151.78&pitch=-0.76&key=MYAPIKEY`
axios.get(url).then(response=>this.setState({image:response.config.url}));
}
Run Code Online (Sandbox Code Playgroud)
在state = { image: null }随后beeing分配我以后传递给图像标记的子组件,例如网址<img src={props.image} alt='street view'/>。一切都像魅力一样,但是我遇到了其他各种解决方案,例如:
function getBase64(url) {
return axios
.get(url, {
responseType: 'arraybuffer'
})
.then(response => Buffer.from(response.data, 'binary').toString('base64'))
}
Run Code Online (Sandbox Code Playgroud)
来自b4dnewzaxios 文档。但是,我找不到如何在具有该响应类型的子组件中显示图像的合理方法。我的问题是,我的方法有效吗?有什么理由让我不应该那样使用它吗?
已经有一些尝试来回答这个问题:
here,here和here。然而,没有一个答案给出了可靠的回应。我不是指的event阶段capture,bubble以及target如何stopPropagation()影响整个事件。我正在寻找添加stopPropagation()到 DOM 节点将有利于整体代码的情况?
javascript event-handling event-propagation dom-events stoppropagation
我在SPA中使用具有3列的网格系统。左右列表包含占据视口高度100的组件。中间一列包含一长串,并想向中间组件添加滚动条。我试图用几个不同的滚动条组件来填充中间组件,但是没有任何效果。我总是以主页滚动结尾,而当进一步向下滚动时,剩下的仅是列表组件,而左侧和右侧组件则保留在页面顶部。
reactjs ×4
javascript ×2
axios ×1
bootstrap-4 ×1
css ×1
dom-events ×1
eslint ×1
google-maps ×1
material-ui ×1
react-hooks ×1
scrollbar ×1