https://github.com/ReactTraining/react-router/releases/tag/v5.1.0

 

Release v5.1.0 · ReactTraining/react-router

Read the blog post List of commits Features Add useParams, useLocation, useHistory, and useRouteMatch hooks (d6224d6) Add support for forwardRef in (b5528ed) Add support for functions in <l...< p=""> </l...<>

github.com

PathVariable 을 받을 때 match 값을 hook으로 받을 수 있게 react router v5에서 추가되었다.

아래와 같이 사용하면 된다.

 

import { useRouteMatch } from 'react-router-dom';

const Component = () => {
	const { params }: any = useRouteMatch();
    
    // /path/:idx
    return (
    	<div>{params?.idx}</div>
    );
};

export default Component;

input 에 focus 를 주기 위해, ref 설정을 하고 focus 를 주었는데, "Object is possibly 'null'" 오류가 계속 발생한다.

if 조건문으로 한번 감싸 주었는데도.. 그래서 아래와 같이 tsconfig.json 을 수정해주었다.

 

// tsconfig.json
{
	...
    "strictNullChecks": false,
    ...
}

React.js 에서 비동기 요청 등의 동작 이후 응답/set state 가 되기 전에 해당 컴포넌트가 unmount 되면서 set state 오류가 나는 경우가 있다. 그럴때는 아래와 같이 해주면 된다.

 

const mounted = useRef(false);

useEffect(() => {
	mounted.current = true;
    () => {
    	mounted.current = false;
    }
}, []);

const fetch = async () => {
	const res = await fetch();
    if (!mounted.current) {
    	return;
    }
    
    // now mounted. do something else
};

array state 의 index 개수 변동이 없을때에는 re-render가 일어나지 않는다.

이럴때에는 새로운 array 로 set state를 해주면 된다.

 

const arr = [1, 2, 3];

setArray([...arr]);

 

 

 

프로젝트 구성후 css import 시에 위와 같은 오류 발생시, 구글링을 해본 결과 nodejs 버전이 낮을 경우 발생을 한다.

nodejs 를 업데이트 해준 후 서버를 재시작 해주면 정상 동작한다. windows 경우에는 nodejs 에서 installer 로 업데이트 해주면 된다.

 

Update to : node version 14.6.* this should resolve it.

 

https://nodejs.org/ko/download/package-manager/

 

패키지 매니저로 Node.js 설치하기 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

출처: https://laracasts.com/discuss/channels/laravel/npm-run-dev-problem-in-fresh-laravel-project

Old question, but found myself asking the same thing. How to intercept res render? Using express 4.0x something now.

You can use/write middleware. The concept was a bit daunting to me at first, but after some reading it made a little more sense. And just for some context for anyone else reading this, the motivation for overriding res.render was to provide global view variables. I want session to be available in all my templates without me having to type it in every res object.

The basic middleware format is.

 

app.use( function( req, res, next ) {
    //....
    next();
} );

The next param and function call are crucial to execution. next is the callback function, to allow multiple middleware to do their thing without blocking. For a better explanation read here

This can then be used to override render logic

 

app.use( function( req, res, next ) {
    // grab reference of render
    var _render = res.render;
    // override logic
    res.render = function( view, options, fn ) {
        // do some custom logic
        _.extend( options, {session: true} );
        // continue with original render
        _render.call( this, view, options, fn );
    }
    next();
} );

카테고리CSS 값예제설명일반링크와 상태선택드래그 앤 드롭크기 조절과 스크롤확대와 축소

auto 사용자 에이전트가 현재 맥락에 맞춰 표시할 커서를 결정. 예를 들어 글씨 위에서는 text를 사용합니다.
default   플랫폼에 따라 다른 기본 커서. 보통 화살표입니다.
none 커서 없음.
context-menu   콘텍스트 메뉴 사용 가능.
help   도움말 사용 가능.
pointer   링크를 나타내는 포인터. 보통 한 쪽을 가리키는 손입니다.
progress   프로그램이 백그라운드에서 작업 중이지만, 사용자가 인터페이스와 상호작용할 수 있음. (wait과 반대)
wait   프로그램이 작업 중이고, 사용자가 인터페이스와 상호작용할 수 없음. (progress와 반대) 간혹 모래시계나 시계모양 그림을 사용합니다.
cell   표의 칸이나 여러 칸을 선택할 수 있음.
crosshair   십자 커서. 종종 비트맵 선택에 사용합니다.
text   글씨 선택 가능. 보통 I빔 모양입니다.
vertical-text   세로쓰기 글씨 선택 가능. 보통 옆으로 누운 I빔 모양입니다.
alias   별칭이나 바로가기를 만드는 중.
copy   복사하는 중.
move   움직이는 중.
no-drop   현재 위치에 놓을 수 없음.
bug 275173: Windows와 Mac OS X에서 no-drop은 not-allowed와 같습니다.
not-allowed   요청한 행동을 수행할 수 없음.
grab   잡을 수 있음. (잡아서 이동)
grabbing   잡고 있음. (잡아서 이동)
all-scroll   모든 방향으로 이동 가능. (패닝)
bug 275174: Windows에서 all-scroll은 move와 같습니다.
col-resize   항목/행의 크기를 좌우로 조절할 수 있음. 종종 좌우 화살표의 가운데를 세로로 분리한 모양을 사용합니다.
row-resize   항목/열의 크기를 상하로 조절할 수 있음. 종종 상하 화살표의 가운데를 가로로 분리한 모양을 사용합니다.
n-resize   움직일 수 있는 모서리. 예를 들어, se-resize 커서는 움직임이 사각형의 동남쪽에서 시작할 때 사용합니다. 어떤 환경에선 동일한 방향의 양방향 화살표를 대신 보여줍니다. 즉 n-resize와 s-resize는 ns-resize와 같습니다.
e-resize  
s-resize  
w-resize  
ne-resize  
nw-resize  
se-resize  
sw-resize  
ew-resize   양방향 크기 조절 커서.
ns-resize  
nesw-resize  
nwse-resize  
zoom-in  

확대/축소할 수 있음.

zoom-out  
const isJson = (str: string) => {
  try {
    const json = JSON.parse(str);
    return json && typeof json === 'object';
  } catch (e) {
    return false;
  }
};

+ Recent posts