Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to pass a keyword for searching? #38

Open
jang1suh opened this issue Nov 3, 2019 · 9 comments
Open

How to pass a keyword for searching? #38

jang1suh opened this issue Nov 3, 2019 · 9 comments
Labels

Comments

@jang1suh
Copy link
Contributor

jang1suh commented Nov 3, 2019

지금 검색 페이지를 구현 중입니다.

일단 검색은 plan 게시물의 tag로만 가능하도록 지난 Sprint때 정했습니다.
그런데 검색을 search page에서 하는 것만 정하고, 어떻게 구현할지 구체적으로는 안 정했던 것 같네요.
어차피 search page는 게시물 검색에만 쓰일테니, /search/:keyword로 검색어를 url에 포함하는 식으로 구현하면 어떨까요? url에 관한 거라 다 같이 확인하고 결정하는 편이 좋을 것 같아서요. 일단 이 방법이 구현하기는 편할 것 같은데, 의견 주시면 감사하겠습니다!

@dreamsh19
Copy link
Contributor

키워드 검색 같은 경우에는 보통 /search?query=keyword 이렇게 하는 것 같던데 어떨까요?
태그 검색도 비슷한 맥락으로 /search?tag=tag 처럼 하는게 어떨까요

@jang1suh
Copy link
Contributor Author

jang1suh commented Nov 3, 2019

검색을 위한 정보라서 승헌님 말씀대로 query string을 사용하는 편이 더 적절할 것 같네요!
그리고 태그 검색만 지원하니까 헷갈리지 않게 /search?tag=something 식으로 쓰도록 하겠습니다

@jang1suh
Copy link
Contributor Author

jang1suh commented Nov 3, 2019

image
제가 처음에 Route를 짤 때 첫 번째 줄처럼 render={...}를 썼는데, 이렇게 하니까 각 페이지에서 props를 읽을 수가 없네요. 두 번째 줄처럼 component를 쓰니까 되고요. 전부 두 번째 줄처럼 적어야 할 것 같은데, 혹시 몰라서 일단 search 페이지만 두 번째 줄처럼 적고 지금 작업 다 끝나면 다른 브랜치 파서 component 쓰는 방식으로 고쳐둘게요.

@deploy-soon
Copy link
Contributor

그게 파라미터가 필요한 부분만 render로 해도 되지 않나요? 다해도 상관은 없지만요

@jang1suh
Copy link
Contributor Author

jang1suh commented Nov 3, 2019

제가 잠시 나와서 지금 확인해볼 수가 없는데, 첫 번째 방식으로 쓰면 해당 페이지에서 this.props가 아무 값도 없었던 걸로 기억해요. 이러면 this.props.history도 사용할 수가 없는데 history는 사용하는 경우가 많을 것 같아서 되도록이면 두 번째 방식으로 쓰는 편이 좋을 것 같아요!

@deploy-soon
Copy link
Contributor

아 그렇군요 알겠습니다. 다음에 path할 때도 고려하고 개발할게요

@dreamsh19
Copy link
Contributor

image
제가 처음에 Route를 짤 때 첫 번째 줄처럼 render={...}를 썼는데, 이렇게 하니까 각 페이지에서 props를 읽을 수가 없네요. 두 번째 줄처럼 component를 쓰니까 되고요. 전부 두 번째 줄처럼 적어야 할 것 같은데, 혹시 몰라서 일단 search 페이지만 두 번째 줄처럼 적고 지금 작업 다 끝나면 다른 브랜치 파서 component 쓰는 방식으로 고쳐둘게요.

@rxwe 혹시 이렇게 했을 때 this.props.history.push('url') 잘 되나요? Signup 같은 경우에는 같은 에러 떠서 여쭤봅니다

@jang1suh
Copy link
Contributor Author

jang1suh commented Nov 4, 2019

@dreamsh19 history.push는 안 해봤는데, 두 번째처럼 짜도 push가 안 되나요? 한 번 this.props 콘솔에 찍어보실 수 있을까요??
그래도 안 된다면 App.js에서 렌더링되는 컴포넌트에 직접 history 프로퍼티로 history를 넘길 수 있어요. (<Mainpage history={history를 가리키는 무언가} /> 이런 식으로요.)

@dreamsh19
Copy link
Contributor

SignupPage가 SignupForm을 래핑하고 있는구조라 SignupPage까지는 history가 잘 전달되는데 SignupForm에는 전달이 안 된 것이 문제였네요.
SignupPage에서 <SignupForm history={this.props.history} /> 로 설정했더니 잘되네요

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants